2 xiaoyan 12 xiaoyan_12 于 2013.01.11 17:44 提问

在一个自定义适配器中设置ImageView的可见性

我自定义了一个列表适配器。我想要列表适配器中的图像根据一个值来显示或隐藏。但是我发现这个图像的可见性也不是依据这个值的。如何运用这个值设置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);
             }

2个回答

a1388463837
a1388463837   2013.01.17 10:54
已采纳

holder.dueDate.setVisibility(ImageView.INVISIBLE);

这个代码不对
隐藏一个控件是设置setVisibility()方法,不过里面的值不是ImageView.INVISIBLE,而是应该改成View.INVISIBLE(此为显示,隐藏为GONE),若你要显示则为myView.setVisibility(View.INVISIBLE);
若要根据值来设置,则需要先需要获取要隐藏的控件
然后自己进行逻辑判断值,再进行相应的隐藏或显示操作
具体怎么设置就看你自己了

curie_87
curie_87   2013.01.14 09:48
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); 
                    }

使用这段代码,能解决你的问题。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!