3

フローティング コンテキスト メニューを使用しようとしていますが、ImageView で画像を押すことで、このメニューをアクティブにできるのでしょうか?

私の最初の問題は、registerForContextMenu と ImageView を処理する方法ですか? GridView と ListViews を使用してほとんどの例を検索して見つけました。

xml でメニューを作成しました。スイッチを使用してアクティビティでこのメソッドを使用する必要があります。

   @Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    // TODO Auto-generated method stub
    super.onCreateContextMenu(menu, v, menuInfo);
}
4

2 に答える 2

7

他の人と同じように、適切なアイテムのメニューを膨らませることに基づいて、onCreateContextMenuでビューを取得します。

registerForContextMenu(imageView);

上記のメソッドは、任意のViewクラスを想定しています。異なるビューに対してregisterForContextMenu()を呼び出すたびに、適切なメニュー作成を処理するためにonCreateContextMenu()が呼び出されます。

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
                            ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);

    if (v.getId == R.id.youtImageView) {
        getMenuInflater().inflate(R.menu.image_menu, menu);
    }
}

メニューがクリックされたビューを決定するアイテムIDに基づいて。異なるビューのメニュー項目のIDが同じでないことを確認する必要があります。コンテキストメニューの項目がクリックされると、クリックされたMenuItemを含むonContextItemSelected()コールバックを受け取ります

@Override
public boolean onContextItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.image_menu_item_do_something:
            doSOmething();
            return true;
        default:
            return super.onContextItemSelected(item);
    }

}
于 2013-02-19T12:21:04.303 に答える