2011-06-12 68 views
0

我的應用程序有一個主菜單,我使用ListView來表示它。由於它是一個菜單,我將根據用戶點擊哪個項目來執行操作。使用ListView建立菜單

我當前的實現看起來是這樣的:

  • 在strings.xml中,我有菜單項的名稱的字符串數組。
  • 在主菜單中的活性,我膨脹字符串數組:itemList = getResources().getStringArray(R.array.main_menu_array);(itemList中是靜態String[]
  • 然後我設置的適配器爲ListView:listView.setAdapter(new ArrayAdapter<String>(this, R.layout.main_menu_item, itemList));R.layout.main_menu_item指定爲每個單獨的菜單項的佈局它基本上是隻是一個具有幾個屬性的TextView。)
  • 我爲ListView設置了OnItemClickListener

匿名OnItemClickListener類實現onItemClick()這樣

public void onItemClick(AdapterView<?> parent, View view, int position, 
     long id) { 
    switch (position) { 
    case POS_ITEM_A: 
     ... break; 
    case POS_ITEM_B: 
     ... break; 
    } 
} 

POS_ITEM_APOS_ITEM_Bfinal static變量分別設置爲0和1。

我不認爲這是好的代碼。我該如何解決它?

回答

1

你可以用微調器做到這一點,但代碼將幾乎相同。

另一種替代方案,更簡單但不易擴展的是與AlertDialog.Buidler一起使用並使用setMultipleChoices method。或者這general documentation page

但是,listview並沒有那麼糟糕。對於一個小功能,我建議使用對話框構建器來操作應用程序的主要對象,使用列表視圖或微調器。

+0

如果是這樣的話,那麼我想我只會去ListView,因爲菜單隻有三個項目。雖然我希望有更好的方法來做到這一點,因爲這種方法感覺有點黑。 – kibibyte 2011-06-13 01:46:23