如何访问ListView android中的视图项?

时间:2012-10-20 10:49:01

标签: android android-listview

我有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

3 个答案:

答案 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方法中将按钮设置为不可见,这会将可见性反转为不可见。

您应该使用一个单独的数组来保存每个按钮的可见性状态,切换该状态,并在绘制时使用它来设置按钮状态。