0

我有一个列表视图,我在其上附加了一个长按监听器。在这个长点击监听器中,我向用户显示了一个弹出菜单,其中包含“删除”等选项。当从该菜单中按下删除时,我需要引用触发长按侦听器的列表项的视图,以便我可以删除该列表项。我需要点击监听器内部的引用。我该怎么做,请帮忙。这是我的代码。

listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
   CharSequence options[]={"Delete"};
   AlertDialog.Builder symbolOptions=new Builder(context);
   symbolOptions.setItems(options, new OnClickListener() {
   @Override
   public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
      CharSequence options[]={"Delete"};
      AlertDialog.Builder symbolOptions=new Builder(context);
      symbolOptions.setItems(options, new OnClickListener() {
      public void onClick(DialogInterface thisDialog, int which) {
         //TODO Auto-generated method stub 
         switch (which) {
         case 0:
         //Reference to the list item which initiated the long click listener
         // Delete that list item
      break;
      default:
         thisDialog.dismiss();
      break;
}
4

2 回答 2

0

通过将位置和项目名称保存为该类的全局变量,然后从内部函数访问它们来解决问题。我不知道这是否正确,但我认为这是一个非常普遍的功能,应该有更好的方法来做到这一点。现在,我必须坚持下去。

于 2013-10-27T13:43:27.860 回答
0

你可以这样做...

将列表项的所有 id 放入 ArrayList 中。说....

ArrayList<Integer> itemids = new ArrayList<Integer>();

然后在 onItemLongClick...

int selected_item_id = itemids.get(position);

现在您知道您单击的项目的 ID。希望能帮助到你。

于 2013-10-27T06:03:07.453 回答