2014-02-21 42 views
0

我在列表中添加了上下文菜单,但即使没有列表项目,列表也会显示上下文菜单。 这是我的代码即使没有列表项目也会显示上下文菜单

@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

在建立菜单之前,在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)); 
     } 
    } 

是当你点击一个空单元格或具有值的单元格。如果它只是一个空单元格,那么我已经相应地修改了代码。

+0

我得到信息为空。 – Anu

相关问题