我在列表中添加了一个上下文菜单。但即使没有列表项,列表也会显示上下文菜单。 这是我的代码
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.list) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
menu.add(getString(R.string.Delete));
}
}
/* (non-Javadoc)
* @see android.app.Activity#onContextItemSelected(android.view.MenuItem)
*/
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
showDeleteDialog(getString(R.string.deletemsg));
return super.onContextItemSelected(item);
}
我该如何解决这个问题?
答案 0 :(得分:0)
在onCreate中,在构建菜单之前添加一个检查。
假设您的列表项适配器对象名为listItemsAdapter
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
if(info != null)
{
if (v.getId()==R.id.list) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
menu.add(getString(R.string.Delete));
}
}
是否单击空单元格或具有值的单元格。如果它只是一个空单元格,那么我已相应地修改了代码。