Android菜单项名称

时间:2012-01-18 04:08:46

标签: java android menu android-intent android-menu

好的,所以我对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”。如果我有更多的时间,我相信我能解决这个问题,但我没有。任何帮助表示赞赏。感谢。

1 个答案:

答案 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;
  }