0

Android の電話メニュー ボタンをクリックすると、コンテキスト メニュー バーを開く方法があるかどうか疑問に思っています。この基本的なチュートリアルに従ってコンテキスト メニュー バーを作成します:チュートリアル コンテキスト メニュー バー

そして、私のアクティビティには次のものがあります。

mCallback = new Callback(){

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        switch(item.getItemId()){
        case 1:
            Toast.makeText(getBaseContext(), "Selected Action1 " + postId, Toast.LENGTH_SHORT).show();
            //mode.finish();    // Automatically exists the action mode, when the user selects this action

            break;
        case 2:
            Toast.makeText(getBaseContext(), "Selected Action2 "  + postId, Toast.LENGTH_SHORT).show();
            //mode.finish();    // Automatically exists the action mode, when the user selects this action
            break;
        case 3:
            Toast.makeText(getBaseContext(), "Selected Action3 " + postId, Toast.LENGTH_SHORT).show();
            //mode.finish();    // Automatically exists the action mode, when the user selects this action
            break;

        }
        return false;

    }

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        mode.setTitle("Actions for Post");
        getMenuInflater().inflate(R.menu.context_menu_posts, menu);

        menu.add(1, 1, 1, "Option 1");
        menu.add(1, 2, 2, "Option 2");
        menu.add(1, 3, 3, "Option 3");



        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        mMode = null;

    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        return false;
    }

};

しかし、ユーザーがメニューボタンをクリックしたときに「表示」したいのです。このコードを LongclickListener に入れる前に:

if(mMode!=null)
        return false;
    else
        mMode = startActionMode(mCallback);

これは、アクティビティのコントロールではうまく機能しましたが、メニュー クリックでこれを行う方法はありますか? startActionMode のコードを @Overriden メニュー メソッドに入れようとしましたが、メニュー ボタンをクリックしても開くことができません。

前もって感謝します!

4

1 に答える 1

0

愚かな投稿で申し訳ありませんが、私は思ったより疲れているに違いありません。

メニューボタンをオーバーライドしてそこにコードを追加するだけだとは思っていませんでした。以前は使用していなかったからです。

この投稿は私のためにそれを解決しました:Intercept menuclick

于 2013-05-14T07:30:24.307 に答える