Android:外部菜单类
我是Java和Android开发的新手。我只是为了学习而制作简单的应用程序。我已经学会了如何制作菜单按钮函数等,但在每个类文件中编写以下代码是非常奇怪的:Android:外部菜单类,android,class,external,Android,Class,External,我是Java和Android开发的新手。我只是为了学习而制作简单的应用程序。我已经学会了如何制作菜单按钮函数等,但在每个类文件中编写以下代码是非常奇怪的: public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: try { Class activityClass1 = Class.forName
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
try {
Class activityClass1 = Class.forName("com.epicandroidapp.MenuActivity");
Intent activityIntent1 = new Intent(MainActivity.this, activityClass1);
startActivity(activityIntent1);
return true;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
case 2:
return true;
case 3:
try {
Class activityClass2 = Class.forName("com.epicandroidapp.AboutActivity");
Intent activityIntent2 = new Intent(MainActivity.this, activityClass2);
startActivity(activityIntent2);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return true;
case 4:
try {
Class activityClass3 = Class.forName("com.epicandroidapp.VersionActivity");
Intent activityIntent3 = new Intent(MainActivity.this, activityClass3);
startActivity(activityIntent3);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return true;
}
return super.onOptionsItemSelected(item);
}
我找不到任何教程或类似的东西。那么,有没有可能使用一些外部文件,比如一些构造函数之类的东西
谢谢你的回答
Maximilian Kulikov您可以在switch语句中对每种情况使用更小的代码:
startActivity(new Intent(MainActivity.this, com.epicandroidapp.MenuActivity.class));
或者,如果导入该类:
import com.epicandroidapp.MenuActivity;
startActivity(new Intent(MainActivity.this, MenuActivity.class));
编辑:如果您指的是整个代码,则需要使用XML资源,如本教程中所述:
例如,创建一个包含菜单的xml文件(保存在res/menu/filename.xml中):
在onOptions ItemSelected
方法中,使用getItemId
获取所选菜单项的id,例如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
startActivity(new Intent(MainActivity.this, MenuActivity.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
请注意,所有这些示例代码都来自android菜单教程。Bojan Kogoj:是的,这就是我的意思。我回答的第二部分应该回答您的问题。是否可以用xml编写第三个代码?类似于:android:onClick=“@android:--command for activity switch-->activity_main”,这样我就可以重写所有活动的按钮功能了?如果您的目标是android 3.0及以上版本,那么有一个
onClick
属性在您的活动中采用公共方法。如果您希望多个活动具有相同的代码,那么可以创建一个静态类,其中包含大量执行相同操作的公共静态方法。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.filename, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
startActivity(new Intent(MainActivity.this, MenuActivity.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}