0

我不知道要解释这个,但我走了,所以我有一个填充列表......所以我长按该列表中的一个项目的每个项目都会出现一个图像按钮实际上是一个删除按钮......所以当我长按列表中的另一个项目我想在我单击的第一个项目上隐藏该按钮...就像每次我长按一个项目时都会出现一个图像按钮,当我单击另一个项目时,该按钮将被隐藏并且将显示我单击新项目的按钮..有关如何执行此操作的任何输入将不胜感激,或者如果您可以给我一些有效的方法来执行此操作..请分享。很多

4

3 回答 3

1

尝试这个,

假设您正在为列表使用适配器...

    final ImageButton prevButton=null;
    row.setOnLongClickListener(new OnLongClickListener() {          
        @Override
        public boolean onLongClick(View arg0) {
            ImageButton currButton=row.findViewById(R.id.<button_id>);
            currButton.setVisibility(View.VISIBLE);
            if(prevButton!=null)
                prevButton.setVisibility(View.gone);
            prevButton=currButton;
            return true;
        }
    });
于 2012-07-30T09:14:31.653 回答
1

您可以只跟踪上一个删除按钮,因为只允许一个。在长按监听器中,您可以删除前一个按钮并创建一个新按钮。

ImageButton prevDelete = null;

...

list.setOnItemLongClickListener (new OnItemLongClickListener() {
  public boolean onItemLongClick(AdapterView parent, View view, int position, long id)      {
        deleteButton(prevButton); // check if not null in the function
        prevDelete = createButton(view); // draw button at view
        return true;
  }
});

您可能已经实现了函数createButtondeleteButton.

于 2012-07-30T09:08:34.853 回答
0

这个问题非常令人困惑......但据我了解,我发现您需要检测列表项上的长按。您是否尝试过AdapterView.OnItemLongClickListener

somelist.setOnItemLongClickListener (new OnItemLongClickListener() {
  public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
    //do your stuff of showing\hiding button here...
  }
});
于 2012-07-30T09:10:47.770 回答