0

我在我的应用程序中使用 ActionBarSherlock,我的很多菜单项都可以在许多不同的活动中找到。

现在我必须在每个活动的activity_menu.xml文件中定义它们,例如

显示在 5 个不同的 xml 文件中。有没有一种方法可以在一个 xml 文件中定义我的所有应用程序的菜单项,然后为每个活动选择我想要显示的菜单项?

编辑:我读到了关于创建一个只实现菜单功能然后扩展它的活动,但这对我来说不是一个空闲的解决方案。有什么方法可以做我描述的吗?

希望我清楚,谢谢

4

1 回答 1

0

是的,有一种方法,您无需在每个活动中声明。您需要有一个名为 BaseActivity 的东西,以便可以扩展所有其他活动。代码示例:

BaseActivity.java:

public class BaseActivity extends SherlockFragmentActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(Config.THEME);
        // set up action bar
        actionBar = getSupportActionBar();
        // sets device orientation
        setDeviceType(this);

        actionBar.setDisplayHomeAsUpEnabled(true);

    }

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

@Override
    public boolean onOptionsItemSelected(MenuItem item) {

        super.onOptionsItemSelected(item);

        switch (item.getItemId()) {
        case R.id.scanner:
                   //do something on menu click
                case R.id.location:
           //do something on menu click
        break;

        }

        return true;

    }

现在只需通过 BaseActivity 扩展您的其他类:

public class HowToUseActivity extends BaseActivity {

}
于 2013-10-29T09:55:57.783 回答