好的,所以我对Android比较陌生,我在菜单项名称方面遇到了一些麻烦。我会尽力解释这个问题。
public class Menu extends ListActivity{
//Should be named the same as the Class itself
String classes[] = { "example1", "example2", "example3", "example4", "example5"};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1, classes));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
String classPosition = classes[position];
super.onListItemClick(l, v, position, id);
try{
Class testClass = Class.forName("com.Test." + classPosition);
Intent testIntent = new Intent(Menu.this, testClass);
startActivity(testIntent);
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
}
我目前正在使用这种方法,但我遇到的问题是,菜单上显示的名称必须与其工作的类名相同。如果我想调用名为“Test”的活动,那么显示的名称必须是“Test”。如果我有更多的时间,我相信我能解决这个问题,但我没有。任何帮助表示赞赏。感谢。
答案 0 :(得分:1)
为什么不尝试simplay方式:
private static final int MenuA = 1;
private static final int MenuB = 2;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0,MenuA ,1,"Menu A");
menu.add(0,MenuB ,1,"Menu B");
return true;
}
public boolean onOptionsItemSelected (MenuItem item)
{
switch(item.getItemId())
{
case(MenuA):
//your code
break;
case(MenuB):
//your code
break;
}
return false;
}