2013-05-31 83 views
0

我遇到了ContextMenu的問題。 活動有一個ListView。通過點擊並按住ListView中的某個項目,ContextMenu應該顯示項目「刪除」和「推送」。 這就是我使用的代碼:ListView ContextMenu

registerForContextMenu(list); 

到目前爲止效果很好。

問題是,當我點擊S3上的「設置 - 按鈕」時,ContextMenu也出現。在那種情況下沒有意義,因爲沒有選擇ListView的項目。是否有可能抑制這一點? (我並不需要一個ContextMenu整個活動,只爲ListView的項目。)

感謝, 馬克

回答

0

你應該檢查menuInfo並決定是否創建一個項目在列表中,或它是一個任意的創作,你談到了什麼,或者你可以檢查view1

@Override 
public void onCreateContextMenu(ContextMenu menu, View view1, 
          ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, view1, menuInfo); 
    if(manuInfo is something){ // bla bla or you can check view1 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.context_menu, menu); 
    }else{ 
     return; 
    } 
} 

這應該工作,還是讓我知道,如果沒有。

+0

謝謝。我做了以下:'if(view1 == list){...}'。但它仍然不起作用。 ContextMenu仍然通過點擊「設置 - 按鈕」出現。通過調試,我看到,onCreateContextMenu()甚至不會在點擊該按鈕後調用。 – Luxori

0

發現了問題:

通過點擊 「設置 - 按鈕」 在我的S3不onCreateContextMenu(),但onCreateOptionsMenu()被調用它賽義德:getMenuInflater().inflate(R.menu.myActivity, menu);。 刪除該行後,一切工作正常。