2014-02-21 44 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

相關問題