2016-11-07 59 views
0

在出现AlertDialog几秒钟后,我甚至可以选择一个选项,但遇到模拟器意外崩溃。你有什么想法可以解决这个问题吗?菜单上的AlertDialog意外崩溃

我有一个ListView与几个对象。在LongClick上将出现一个小菜单。通过选择“删除”选项,我想要一个AlertDialog显示并询问用户是否确定他在做什么。

@Override 
    public boolean onContextItemSelected(MenuItem item) { 
     final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
     switch (item.getItemId()) { 
      case R.id.rename: 
       // rename the entry in the list 
       return true; 
      case R.id.delete: 
       // confirmation popup before deleting 
       new AlertDialog.Builder(getActivity()).setTitle(R.string.app_name).setMessage("Are you sure you want to delete this package?").setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         // Really delete the package 
        } 
       }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         // Do nothing 
        } 
       }).show(); 
       return true; 
      default: 
       return super.onContextItemSelected(item); 
     } 
    } 

右键崩溃之前,我在日志中这样的信息:

EmuGL:警告:不良通用指针0x7f64d97be818

+0

在我的android工作室测试了这段代码,它完美的工作。我想也许上下文是空的或类似的东西。 – mesutbeyaztas

+0

@mesutbeyaztas也许你是对的......但是我应该用什么来代替'getActivity()'作为上下文? – Robb1

回答

0

显然,问题是AVD本身!我正在使用一个破碎的系统图像。再次下载解决了问题。

0

这样使用它也许修复崩溃。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == R.id.delete) { 

     return true; 
    } 
    return super.onOptionsItemSelected(item); 
}