その他アイコン (リスト アイテムの右側に固定された 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 を使用しています。それが違いを生むかどうかはわかりませんが、注目に値すると思います。
ここで何が起こっているのか誰にも分かりますか?