2

我正在使用 ActionBarSherlock 来实现一个使用这个强大的 AB 作为菜单的 UI。这是菜单布局:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/capturador"
        android:icon="@drawable/ic_action_capturador"
        android:showAsAction="always"
        android:title="@string/capturador"/>

    <item
        android:id="@+id/preferencias"
        android:icon="@drawable/ic_action_prefs"
        android:showAsAction="always"
        android:title="@string/preferencias"/>   

</menu>

如您所见,它有两个项目(capturadorpreferencias

所以,我想做的——如果可能的话——是重用代码。这没什么大不了的,因为除了主要活动之外,我还有两个活动,但如果我有五个呢?我应该在每个活动中覆盖onOptionsItemSelected(MenuItem item)onCreateOptionsMenu(Menu menu)方法吗?

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == R.id.capturador) {
        startActivity(new Intent(this, Capturador.class));
    } else if (item.getItemId() == R.id.preferencias) {
        startActivity(new Intent(this, Ajustes.class));
    }
    return true;
}

提前感谢您的帮助,如果这个问题已经得到解答,我很抱歉,但我真的不知道我必须使用哪些词来尝试找到它(此外,英语不是我的母语)

4

1 回答 1

4

只需BaseActivity在其中实现此代码,然后让Activities您想要拥有这 2 个选项菜单的所有内容,扩展您的BaseActivity.

于 2012-07-11T13:38:33.637 回答