listview中的Android上下文菜单

时间:2010-07-13 16:49:02

标签: android listview menu

我是Android开发的新手,并且在编程方面不是很擅长但是,我正在开发一个每个标签都有一个列表视图的标签布局。每个选项卡都有自己的java文件。我目前正在尝试添加一个上下文菜单,当我在列表视图中的项目上单击(不是长按)时,将显示一个菜单,以便我可以选择一个选项。现在它只显示一个显示我点击的项目名称的吐司。列表视图选项当前通过本地字符串声明添加到列表中,以下是我的选项卡的示例:

public class AlbumTab extends ListActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
      final String[] CDExplorer_tabs = new String[] {"Client Heirarchy", "Territory", "Sales Credit", "Admin", "General Search"};
      super.onCreate(savedInstanceState);

      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, CDExplorer_tabs));

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);

      lv.setOnItemClickListener(new OnItemClickListener() 
      {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) 
        {

          Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
              Toast.LENGTH_SHORT).show();
        }
      });
    }

我是否必须为每个要弹出的菜单创建另一个字符串数组,并以某种方式将其连接到另一个字符串?或者if if语句决定根据哪个listview项单击弹出哪个菜单?

1 个答案:

答案 0 :(得分:0)

首先,如果您希望列表的每个部分都有不同的菜单,请在onItemClick()中创建一个取决于您的位置的switch语句。 switch(position){ //cases and such

然后你可能想要尝试而不是嵌套的ListView是尝试做AlertDialog。搜索添加列表。然后为列表中的每个位置实现该功能。然后确保在DialogInterface onClick函数内部实现另一个开关,以调用函数来执行从列表中执行的操作。还要确保alert.show();.

如果你想这样做,这将是我的建议。但是,如果要进行嵌套列表视图,则更复杂但可能。

您需要为您列出自定义列表适配器。并为每个包含另一个列表视图的人创建一个视图持有者。一个很好的例子是here

那应该是这样做的。请注意,如果您决定执行嵌套列表视图,那么列表视图中的内容会非常拥挤。