菜单上的AlertDialog意外崩溃
问题描述:
在出现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
答
显然,问题是AVD本身!我正在使用一个破碎的系统图像。再次下载解决了问题。
答
这样使用它也许修复崩溃。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.delete) {
return true;
}
return super.onOptionsItemSelected(item);
}
在我的android工作室测试了这段代码,它完美的工作。我想也许上下文是空的或类似的东西。 – mesutbeyaztas
@mesutbeyaztas也许你是对的......但是我应该用什么来代替'getActivity()'作为上下文? – Robb1