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

Android 获取启动对话框的列表项的引用,android,android-listview,android-dialog,Android,Android Listview,Android Dialog,我有一个列表视图,上面附加了一个长时间单击的侦听器。在这个长时间单击的监听器中,我向用户显示了一个弹出菜单,其中包含诸如“删除”之类的选项。当从该菜单中按delete键时,我需要引用触发长时间单击侦听器的列表项视图,以便删除该列表项。我需要在内部单击侦听器中的引用。我怎么做,请帮忙。这是我的密码 listview.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLo

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

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;
}
listview.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
字符序列选项[]={“删除”};
AlertDialog.Builder symbolOptions=新生成器(上下文);
setItems(选项,新的OnClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
字符序列选项[]={“删除”};
AlertDialog.Builder symbolOptions=新生成器(上下文);
setItems(选项,新的OnClickListener(){
public void onClick(DialogInterface thisDialog,int which){
//TODO自动生成的方法存根
开关(哪个){
案例0:
//对启动长时间单击侦听器的列表项的引用
//删除该列表项
打破
违约:
thisDialog.discouse();
打破
}
您可以这样做

将列表项的所有ID放在ArrayList中。例如

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

现在您知道了您单击的项目的id。希望它有帮助。

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

不起作用,因为我希望该id用于另一种方法,即onclick。我认为如果您全局声明所选项目的id,您可以在其他方法中获得该id。您已经解决了这个问题吗?如果可以,请分享。这将对我有所帮助。
int selected_item_id = itemids.get(position);