-1

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

4

3 回答 3

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;
    }
});
于 2012-10-20T10:53:08.800 回答
0

我假设此按钮是填充在每个列表项中的线性布局中的布局的一部分?在这种情况下,使用view.findViewById(id_of_your_button)并获取按钮视图并将其设置为可见

于 2012-10-20T10:55:31.190 回答
0

您必须在适配器上调用 notifyDataSetChanged() 才能重绘列表。但是要小心,如果您在适配器的 getView 方法中将按钮设置为不可见,这会将可见性反转回不可见。

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

于 2012-10-20T10:57:28.577 回答