5

ここに画像の説明を入力

その他アイコン (リスト アイテムの右側に固定された 3 つの縦の点) をクリックすると、Google ミュージックのコンテキスト メニューが開きます。

ここに画像の説明を入力

私が推測しているのはコンテキストメニューでこれを再現しようとしています。ドキュメントには次のように記載されています。

アクティビティで ListView または GridView を使用し、各項目で同じコンテキスト メニューを提供する場合は、ListView または GridView を registerForContextMenu() に渡して、コンテキスト メニューのすべての項目を登録します。

しかし、リスト項目自体をクリック可能にしたいのです。ユーザーが Google ミュージックのように [その他] アイコンをクリックすると、コンテキスト メニューが表示されるようにしたいだけです。

だから私はこれを試しました:

@Override
public void onMoreClicked(ArtistsListItem item, int position, View imageButton) {       
     registerForContextMenu(imageButton);
}

onMoreClicked は、リストのアダプターから onClick コールバックを受け取るために作成したカスタム リスナーの一部にすぎません。

registerForContextMenu が呼び出されますが、フラグメントの onCreateContextMenu メソッドは呼び出されません。

@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo info) { //this method is never called
    super.onCreateContextMenu(menu, view, info);

    android.view.MenuInflater inflater = mActivity.getMenuInflater();
    inflater.inflate(R.menu.artist_list_menu, menu);
}

実行中かどうかを確認するためにいくつかのブレークポイントを実行しましたが、実行されませんでした。アクティビティの onCreateContextMenu (registerForContextMenu のクラスはフラグメントですが、念のためにそのようにしたことを確認するため) についても同じことを行い、サイコロも使用しませんでした。

私は ActionBarSherlock を使用しています。それが違いを生むかどうかはわかりませんが、注目に値すると思います。

ここで何が起こっているのか誰にも分かりますか?

4

1 に答える 1