我有ListView
。我已成功填充ListView
,但现在需要的是当用户长按ListItem
时,它应该显示一个按钮,当我填充ListView
时,我看不到该按钮。
这是我试过的片段。
mItemListView.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> adapterview, View arg1,
int arg2, long arg3) {
LinearLayout view=(LinearLayout) mItemListView.getChildAt(arg2);
view.getChildAt(0).setVisibility(View.VISIBLE);
return false;
}
});
我的适配器正在扩展BaseAdapter
答案 0 :(得分:2)
使用传递给onItemLongClick(AdapterView<?> adapterview, View arg1,
int arg2, long arg3)
方法的视图。例如
mItemListView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterview, View arg1,
int arg2, long arg3) {
arg1.setVisibility(View.VISIBLE);
return false;
}
});
答案 1 :(得分:0)
我认为此按钮是每个列表项中填充的线性布局中布局的一部分?在这种情况下,使用view.findViewById(id_of_your_button)
并获取按钮视图并将 设置为VISIBLE。
答案 2 :(得分:0)
您必须在适配器上调用notifyDataSetChanged()才能重绘列表。但是要小心,如果你在适配器的getView方法中将按钮设置为不可见,这会将可见性反转为不可见。
您应该使用一个单独的数组来保存每个按钮的可见性状态,切换该状态,并在绘制时使用它来设置按钮状态。