我自定义了一个列表适配器。我想要列表适配器中的图像根据一个值来显示或隐藏。但是我发现这个图像的可见性也不是依据这个值的。如何运用这个值设置ImageView的可见性呢?
下面是我的代码,代码是在 getView 方法中设置的
singleRow=data.get(position);
readit = singleRow.getRead();
Log.i("readit","" + readit );
//NotificationID=singleRow.getId();
holder.title.setText(singleRow.getAttach_title());
holder.date.setText( singleRow.getAttach_created());
holder.dueDate.setVisibility(ImageView.INVISIBLE);
holder.course.setText(singleRow.getCourse_title());
if(readit==1)
{
//holder.read.setImageResource(IGNORE_ITEM_VIEW_TYPE);
holder.read.setVisibility(ImageView.INVISIBLE);
}
else
{
holder.read.setImageResource(R.drawable.unread);
}
holder.dueDate.setVisibility(ImageView.INVISIBLE);
这个代码不对
隐藏一个控件是设置setVisibility()方法,不过里面的值不是ImageView.INVISIBLE,而是应该改成View.INVISIBLE(此为显示,隐藏为GONE),若你要显示则为myView.setVisibility(View.INVISIBLE);
若要根据值来设置,则需要先需要获取要隐藏的控件
然后自己进行逻辑判断值,再进行相应的隐藏或显示操作
具体怎么设置就看你自己了
singleRow=data.get(position);
readit = singleRow.getRead();
Log.i("readit","" + readit );
//NotificationID=singleRow.getId();
holder.title.setText(singleRow.getAttach_title());
holder.date.setText( singleRow.getAttach_created());
holder.dueDate.setVisibility(ImageView.INVISIBLE);
holder.course.setText(singleRow.getCourse_title());
holder.read.setImageResource(R.drawable.unread);
if(readit==1) {
//holder.read.setImageResource(IGNORE_ITEM_VIEW_TYPE);
holder.read.setVisibility(View.INVISIBLE);
}
使用这段代码,能解决你的问题。