如何在listactivity的listview中显示和隐藏一些图像按钮? 我有一些包列表,想要安装和卸载等显示按钮。但是当安装软件包时,只显示卸载按钮。如果单击卸载,我想隐藏卸载按钮并显示安装按钮。 我像这样引用循环中的每一行:
v = vi.getAdapter().getView(i, null, null);
和像这样的参考按钮
ImageButton ib = (ImageButton)v.findViewById(R.id.descargar);
ib.setVisibility(View.VISIBLE);
什么也没发生。有什么建议吗?谢谢。
答案 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);
这对我有用。希望这有帮助。