我在我的应用程序中使用ActionBarSherlock,我的很多菜单项都可以在很多不同的活动中找到。
现在我必须在每个Activity的activity_menu.xml
文件中定义它们,例如
显示在5个不同的xml文件中。 有没有办法在一个xml文件中定义所有应用程序的菜单项,然后为每个活动选择我想要显示的菜单项?
编辑:我读到了创建一个只实现菜单功能然后扩展它的活动,但这对我来说不是一个空闲的解决方案。做我描述的任何方式?希望我很清楚, 感谢
答案 0 :(得分: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 {
}