动态显示和隐藏listview行内的图像按钮

时间:2014-01-13 13:53:32

标签: android row show imagebutton listactivity

如何在listactivity的listview中显示和隐藏一些图像按钮? 我有一些包列表,想要安装和卸载等显示按钮。但是当安装软件包时,只显示卸载按钮。如果单击卸载,我想隐藏卸载按钮并显示安装按钮。 我像这样引用循环中的每一行:

v = vi.getAdapter().getView(i, null, null);

和像这样的参考按钮

ImageButton ib = (ImageButton)v.findViewById(R.id.descargar);
            ib.setVisibility(View.VISIBLE);
什么也没发生。有什么建议吗?谢谢。

2 个答案:

答案 0 :(得分:2)

继承ArrayAdapter类并覆盖getView函数。 当显示行时,总是调用getView函数。

为行创建类:

public class MyRow {
   public boolean installed;
}

实施ArrayAdapter:

public class MyAdapter<MyRow> {

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
    // get actual row item.
    MyRow item = (MyRow)getItem(position);
    ImageButton ib = (ImageButton)v.findViewById(R.id.install);
    ImageButton uib = (ImageButton)v.findViewById(R.id.uninstall);

     if (item.installed) {
         ib.setVisibility(View.VISIBLE);
         uib.setVisibility(View.GONE);
    } else {
         ib.setVisibility(View.GONE);
         uib.setVisibility(View.VISIBLE);
    }    

    return rowView;
  }
}

查看本教程,了解如何实现ListAdapter以及如何回收视图。 http://www.vogella.com/tutorials/AndroidListView/article.html

答案 1 :(得分:0)

我不知道你的代码有什么问题,但试试这个:

View v  = getListView().getChildAt(i);

然后按照你的方式继续做下去:

ImageButton ib = (ImageButton)v.findViewById(R.id.descargar);
        ib.setVisibility(View.VISIBLE);

这对我有用。希望这有帮助。