2012-02-24 77 views
0

我有一个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; 
     } 
} 
+0

只是延长该菜单,而不是活性的所有活动。 – 2012-02-24 04:55:08

+0

好吧我已经有了公共类Menu extends Activity。所以如果我的其他类会有公共类OtherActivity扩展菜单,因为我的菜单已经有这个活动在它的正确? – hellomello 2012-02-24 04:57:34

+0

是的,假设如果你想使用另一个菜单,那么你只需要重写你的活动中的菜单方法,只需简单地扩展菜单类而不是Activity类并检查自己。 – 2012-02-24 05:04:23

回答

0

您可以创建一个基础的活动,您的所有其他活动延长:

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; 
    } 
} 
相关问题