1

SherlockFragmentActivity の onOptionsItemSelected() に問題があります。onCreateOptionsMenu() が呼び出され、オプション メニューが完全に構築されますが、オプション項目をクリックすると、onOptionsItemSelected() が呼び出されません。

SherlockActivity を使用してテスト プロジェクトで同じ次のコードを試してみましたが、動作します。

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

    menu.add(0, 1, 0, "hi").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    menu.add(0, 1, 0, "ha").setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_NEVER);

    return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == 1) {
            // Do someting!

        }
        return true;
    }

どちらの場合も、次のインポートが行われます。

   import com.actionbarsherlock.app.ActionBar;
   import com.actionbarsherlock.view.Menu;
   import com.actionbarsherlock.view.MenuItem;

誰か助けを知っていますか?ありがとうございました!

4

2 に答える 2

1

ありがとうございました!プロジェクトをコピーして、SherlockFragmentActivity を再構築し、問題を発見しました。私のクラスには既に public boolean onMenuItemSelected(int featureId, MenuItem item) が含まれており、これは onOptionsItemSelected の代わりに呼び出されます。アクションバーの左上のサイトに戻るボタンがあるため、これが必要です。

于 2013-04-19T18:23:21.383 に答える