将相同的上下文菜单添加到多个活动

use*_*183 9 android contextmenu extend android-activity

我试图弄清楚如何在多个活动中包含常见的代码片段.

更具体地说,我有一个上下文菜单,我想在几个活动中包含.我看到了这一点,但只是不明白如何扩展到多个活动. http://developer.android.com/guide/topics/ui/menus.html

我把它设置为Menu.java

    public class Menu extends Activity{

    // bottom menus
    public static final int Menu1 = 1;
    public static final int Menu2 = 2;
    public static final int Menu3 = 3;
    public static final int Menu4 = 4;
    public static final int Menu5 = 5;
    public static final int Menu6 = 6;
    public static final int Menu7 = 7;


    // / Creates the menu items
    public boolean onCreateOptionsMenu(Menu menu) {

        menu.add(0, Menu3, 0, "Create Profile").setIcon(
                this.getResources().getDrawable(R.drawable.ic_menu_add));
        menu.add(0, Menu5, 0, "Log In").setIcon(
                this.getResources().getDrawable(R.drawable.ic_menu_login));
        menu.add(0, Menu2, 0, "Settings").setIcon(
                this.getResources().getDrawable(R.drawable.ic_menu_preferences));
        menu.add(0, Menu4, 0, "About").setIcon(
                this.getResources().getDrawable(R.drawable.ic_menu_help));
        menu.add(0, Menu1, 0, "Report A Bug").setIcon(
                this.getResources().getDrawable(R.drawable.ic_menu_start_conversation));
        menu.add(0, Menu6, 0, "New Stuff").setIcon(
                this.getResources().getDrawable(R.drawable.ic_menu_view));
        return true;
    }



    private MenuItem add(int i, int menu32, int j, String string) {
        // TODO Auto-generated method stub
        return null;
    }



    // Handles item selections from preference menu
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case Menu1:
            startActivity(new Intent(this, Bug.class));
            return true;
        case Menu2:
            startActivity(new Intent(this, EditPreferences.class));
            return true;
        case Menu3:
            startActivity(new Intent(this, CreateAccount.class));
            return true;
        case Menu4:
            startActivity(new Intent(this, About.class));
            return true;
        case Menu5:
            startActivity(new Intent(this, Login.class));
            return true;
        case Menu6:
            startActivity(new Intent(this, NewAdditions.class));
            return true;
        }

        return false;
    }


}
Run Code Online (Sandbox Code Playgroud)

djk*_*djk 23

如果要在多于1个活动中添加相同的功能,而不是创建1个常见活动(如BaseActivity),则扩展该活动将包括继承的所有活动中的常用功能

例如我调用了checklogin函数,你可以把你的菜单代码放在这里,

public class BaseActivity extends Activity {

      @Override
     protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     settings = getSharedPreferences(PREFS_NAME, 0);
        if (IsFullScreen) {
           requestWindowFeature(Window.FEATURE_NO_TITLE);
           getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }

        this.CheckLogin();
     }

    // Check login function
    // Your menu code

  }
Run Code Online (Sandbox Code Playgroud)

现在你可以在你的活动中扩展它

public class MainScreen extends BaseActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    this.setContentView(R.layout.mainscreen);

   }

}
Run Code Online (Sandbox Code Playgroud)