2011-06-12 38 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