2013-06-27 57 views
0

我有一個ListActivity,其中列表已被註冊爲contextmenu.But上下文菜單沒有出現在模擬器上長時間按任何列表項目。爲了進一步檢查問題,我有添加了一個放在方法onContextItemSelected中的LOg.i()語句。下面提供了代碼片段。 line.But出現ContextMenu不出現在列表視圖中

public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo info){ 
     super.onCreateContextMenu(menu,v,info); 
     MenuInflater inflater=getMenuInflater(); 
     inflater.inflate(R.menu.list_items_contextmenu, menu); 
     Log.i("","m here");  
    } 

的logcat的顯示 「這裏M」 無文本菜單:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<Item 
    android:id="@+id/details_context_button" 
    android:title="Details" 
    /> 
<Item 
    android:id="@+id/edit_context_button" 
    android:title="Edit" 
    /> 
<Item 
    android:id="@+id/delete_context_button" 
    android:title="Delete" 
    /> 

</menu>` 

IN THE LISTACTIVITY onCreate方法:

ListView list=getListView();  
this.setListAdapter(new NamesAdapter 
(this,android.R.layout.simple_list_item_checked, index_ids)); 
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
registerForContextMenu(list); 

THE ONCONTEXT ITEM選擇的方法如下。我非常困惑,有人請幫忙嗎?

+0

你可能Item'改變''要在item'你的菜單XML – codeMagic

回答

0

我在文檔中找不到任何東西,但我只是對它進行了測試。正如我懷疑的那樣,<item>標籤區分大小寫。因此,更改所有的標籤在你的菜單中的XML

<?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" > 
     <item 
      android:id="@+id/details_context_button" 
      android:title="Details"/> 
     <item 
      android:id="@+id/edit_context_button" 
      android:title="Edit"/> 
     <item 
      android:id="@+id/delete_context_button" 
      android:title="Delete"/> 
    </menu> 

你的菜單將不會顯示如果<item>是大寫

根據W3schools

XML標記區分大小寫 XML標籤區分大小寫...

打開和關閉標籤必須寫入相同的大小寫:

+0

yup.You是100%correct.I納悶爲什麼編碼蝕力拋出任何warning.Anyway,非常感謝中。 –

+0

因爲它不是非法的,而且據我所知,有一些解決方法可以使其不區分大小寫,但可能不是一個好主意。因此,雖然xml區分大小寫,但如果標籤錯誤,標籤並不是非法的,但它們不會提供所需的結果 – codeMagic

0

我認爲listview攔截事件在這裏,因此你的活動沒有收到它。我不知道,但它看起來像這樣。