Android开发:将“菜单”类传递给其他活动
问题描述:
我有一个menu.java,并且在这个文件中我有代码行以允许用户按下菜单按钮,并且“MENU1”和“MENU2”将出现在它们的Android手机。但是,我有多个Java类,每个Java类都是它自己的活动。我需要做的,使每个活动这个菜单类函数没有把每行代码在menu.java到对方的.javaAndroid开发:将“菜单”类传递给其他活动
这是我Menu.java
公共类菜单扩展活动{
public boolean onCreateOptionsMenu(android.view.Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater a = getMenuInflater();
a.inflate(R.menu.main_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.MENU1:
startActivity(new Intent("com.helloworld.test.MENU1"));
return true;
case R.id.MENU2:
startActivity(new Intent("com.helloworld.test.MENU2"));
return true;
}
return false;
}
}
答
您可以创建一个基础的活动,您的所有其他活动延长:
public class BaseActivity extends Activity {
public boolean onCreateOptionsMenu(android.view.Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater a = getMenuInflater();
a.inflate(R.menu.main_menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.MENU1:
startActivity(new Intent("com.helloworld.test.MENU1"));
return true;
case R.id.MENU2:
startActivity(new Intent("com.helloworld.test.MENU2"));
return true;
}
return false;
}
}
只是延长该菜单,而不是活性的所有活动。 – 2012-02-24 04:55:08
好吧我已经有了公共类Menu extends Activity。所以如果我的其他类会有公共类OtherActivity扩展菜单,因为我的菜单已经有这个活动在它的正确? – hellomello 2012-02-24 04:57:34
是的,假设如果你想使用另一个菜单,那么你只需要重写你的活动中的菜单方法,只需简单地扩展菜单类而不是Activity类并检查自己。 – 2012-02-24 05:04:23