2012-01-18 47 views
0

好的,所以我對Android比較陌生,而且在菜單項名稱方面遇到了一些麻煩。我會盡我所能解釋這一點。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(); 
     } 
    } 
} 

我目前使用這種方法,但我遇到的問題是,所顯示的菜單上的名字必須是一樣的類名稱爲它工作。如果我想調用名爲「測試」的活動,則顯示的名稱必須是「測試」。如果我有更多時間,我相信我可以弄清楚這一點,但我不知道。任何幫助表示讚賞。謝謝。

回答

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; 
    } 
+0

我想試試。謝謝。 – killerunicorn7 2012-01-18 23:13:34