添加相同的上下文菜单中多种活动上下文、多种、菜单中

2023-09-12 04:27:33 作者:月桀

我试图找出如何包括code常用件多项活动。

更具体地讲,我有,我想在几个活动,包括上下文菜单。 我看到了这一点,但就是不知道如何扩展到多个活动。 http://developer.android.com/guide/topics/ui/menus.html

我有这样的设置为Menu.java

 公共类菜单扩展活动{

    //底部菜单
    公共静态最终诠释菜单1 = 1;
    公共静态最终诠释菜单2 = 2;
    公共静态最终诠释菜单3 = 3;
    公共静态最终诠释Menu4 = 4;
    公共静态最终诠释Menu5 = 5;
    公共静态最终诠释Menu6 = 6;
    公共静态最终诠释Menu7 = 7;


    // /创建菜单项
    公共布尔onCreateOptionsMenu(功能菜单){

        menu.add(0,菜单3,0,创建配置文件)。的setIcon(
                。this.getResources()getDrawable(R.drawable.ic_menu_add));
        menu.add(0,Menu5,0,登录)。的setIcon(
                。this.getResources()getDrawable(R.drawable.ic_menu_login));
        menu.add(0,菜单2,0,设置)。的setIcon(
                。this.getResources()getDrawable(R.drawable.ic_menu_ preferences));
        menu.add(0,Menu4,0,关于)。的setIcon(
                。this.getResources()getDrawable(R.drawable.ic_menu_help));
        menu.add(0,菜单1,0,报告错误)。的setIcon(
                。this.getResources()getDrawable(R.drawable.ic_menu_start_conversation));
        menu.add(0,Menu6,0,新材料)。的setIcon(
                。this.getResources()getDrawable(R.drawable.ic_menu_view));
        返回true;
    }



    私人菜单项附加(INT I,诠释menu32,诠释J,串串){
        // TODO自动生成方法存根
        返回null;
    }



    //把手项目选择由preference菜单
    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        开关(item.getItemId()){
        情况下菜单1:
            startActivity(新意图(这一点,Bug.class));
            返回true;
        案例菜单2:
            startActivity(新意图(这一点,编辑preferences.class));
            返回true;
        案例菜单3:
            startActivity(新意图(这一点,CreateAccount.class));
            返回true;
        案例Menu4:
            startActivity(新意图(这一点,About.class));
            返回true;
        案例Menu5:
            startActivity(新意图(这一点,Login.class));
            返回true;
        案例Menu6:
            startActivity(新意图(这一点,NewAdditions.class));
            返回true;
        }

        返回false;
    }


}
 

解决方案

如果您要添加相同的功能在超过1活性比创建1个公共活动 像BaseActivity和扩展活动将包括在继承的所有活动的常见功能

在Windows 7或8中将多种类型的项目添加到桌面上下文菜单

例如我呼吁checklogin功能,你可以把你的菜单code在这里,

 公共类BaseActivity延伸活动{

      @覆盖
     保护无效的onCreate(包savedInstanceState){
     super.onCreate(savedInstanceState);
     设置= getShared preferences(preFS_NAME,0);
        如果(IsFullScreen){
           requestWindowFeature(Window.FEATURE_NO_TITLE);
           getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }

        this.CheckLogin();
     }

    //检查登录功能
    //你的菜单code

  }
 

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

 公共类MainScreen扩展BaseActivity {

@覆盖
保护无效的onCreate(包savedInstanceState){
    // TODO自动生成方法存根
    super.onCreate(savedInstanceState);

    this.setContentView(R.layout.mainscreen);

   }

}
 

I'm trying to figure out how to include common pieces of code in multiple activities.

More specifically, I have a context menu that I would like to include in several activities. I saw this, but just don't understand how to extend to multiple activities. http://developer.android.com/guide/topics/ui/menus.html

I have this set up as 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;
    }


}

解决方案

if you want to add same functionality in more than 1 activity than create 1 common activity like BaseActivity and extend that activity will include that common functions in your inherited all activities

for example i have called checklogin function , you can put your menu code here,

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

  }

now you can extend it in your activities

public class MainScreen extends BaseActivity {

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

    this.setContentView(R.layout.mainscreen);

   }

}