Java Android开发:将“菜单”类传递给其他活动
我有一个menu.java文件,在这个文件中我有几行代码,允许用户按下菜单按钮,MENU1和MENU2将出现在他们的android手机上。但是,我有多个java类,每个java类都是它自己的活动。我需要做什么才能让这个菜单类在每个活动中都起作用,而不需要将menu.java中的每一行代码都放到彼此的menu.java中呢 这是我的菜单 公共类菜单扩展活动{Java Android开发:将“菜单”类传递给其他活动,java,android,android-activity,android-intent,Java,Android,Android Activity,Android Intent,我有一个menu.java文件,在这个文件中我有几行代码,允许用户按下菜单按钮,MENU1和MENU2将出现在他们的android手机上。但是,我有多个java类,每个java类都是它自己的活动。我需要做什么才能让这个菜单类在每个活动中都起作用,而不需要将menu.java中的每一行代码都放到彼此的menu.java中呢 这是我的菜单 公共类菜单扩展活动{ public boolean onCreateOptionsMenu(android.view.Menu menu){
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;
}
}
只需在所有活动中扩展此菜单而不是活动。我已经有了公共类菜单扩展活动。因此,如果我的其他类将有公共类OtherActivity扩展菜单,因为我的菜单中已经有此活动,对吗?是的,假设您要使用另一个菜单,那么您只需覆盖m方法,只需扩展菜单类而不是活动类,然后检查自己。