获取启动对话框的列表项的引用

时间:2013-10-27 05:30:35

标签: android android-listview android-dialog

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

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;
}

2 个答案:

答案 0 :(得分:0)

你可以这样做......

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

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

然后在onItemLongClick ...

int selected_item_id = itemids.get(position);

现在您知道所点击项目的ID。希望它有所帮助。

答案 1 :(得分:0)

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