0

这是SherlockActionBar示例,它使用静态附件,我运行到ICE_CREAM_SANDWICH设备,但onOptionsItemSelected没有调用方法!

多余部分代码删掉,3.x和2.x版本试过没问题,帮帮我~~

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(SampleList.THEME); // Used for theme switching in samples
    super.onCreate(savedInstanceState);

    mSherlock
            .setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
    mSherlock.setContentView(R.layout.text);

    ((TextView) findViewById(R.id.text))
            .setText(R.string.static_attach_content);
}

@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
    return mSherlock.dispatchCreateOptionsMenu(menu);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Used to put dark icons on light action bar
    boolean isLight = SampleList.THEME == R.style.Theme_Sherlock_Light;

    menu.add("Save")...

    menu.add("Search")...

    menu.add("Refresh")...

    return true;
}

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (mSherlock.dispatchKeyEvent(event)) {
        return true;
    }
    return super.dispatchKeyEvent(event);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Log.i("", "on options item selected!!!!!!!!!!!!!!!!");
    Toast.makeText(this, item.toString(), Toast.LENGTH_SHORT).show();
    return true;
}

}
4

1 回答 1

3

如果您正在使用片段并onOptionsItemSelected在片段和活动中调用,请记住super.onOptionsItemSelected(item);在活动调用中返回

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // If home icon is clicked return to main Activity
    case android.R.id.home:
        getSupportFragmentManager().popBackStack(null,
                FragmentManager.POP_BACK_STACK_INCLUSIVE);
        return true;
    }

    return super.onOptionsItemSelected(item);
}
于 2012-11-04T18:30:28.753 回答