我试图找出如何包括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和扩展活动将包括在继承的所有活动的常见功能
例如我呼吁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);
}
}