0

リストが contextmenu に登録されている ListActivity があります。しかし、リスト項目のいずれかを長押しした後、コンテキスト メニューがエミュレーターに表示されません。問題をさらに調べるために、LOg.i() ステートメントを追加しました。メソッド onContextItemSelected 内に配置されています。コード スニペットを以下に示します。

<?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>`

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);

以下に示す ONCONTEXT ITEM SELECTED メソッド:

 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 here" という行が表示されますが、コンテキスト メニューが表示されません。非常に困惑しています。誰か助けてください。

4

2 に答える 2

0

リストビューがここでイベントをインターセプトしているため、アクティビティがそれを受け取っていないと思います。よくわかりませんが、次のようになります。

于 2013-06-27T18:07:29.643 に答える
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 タグは大文字と小文字を区別します...

開始タグと終了タグは、大文字と小文字を同じにして記述する必要があります。

于 2013-06-27T18:04:27.480 に答える