2010-07-13 61 views
3

我是新来的android开发,并不是很好的编程一般,但是,我正在一个标签布局,每个标签有一个列表视图。每个选项卡都有它自己的java文件。我目前正试图添加一个上下文菜单,当我点击(没有长时间点击)我的列表视图中的项目时,会弹出一个菜单,以便我可以选择一个选项。现在它只显示一个吐司显示我点击的项目的名称。列表视图选项目前加入到通过本地字符串声明列表,这里是我的标签的例子:从列表视图Android的上下文菜单

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(); 
     } 
     }); 
    } 

我将不得不做出我想要弹出并以某种方式将它连接每个菜单另一个字符串数组到另一个字符串?或者,如果语句决定根据哪个列表视图项目被点击而弹出哪个菜单?

+0

你想要在上下文菜单上显示什么样的选择? – Cristian 2010-07-13 16:57:34

+0

每个字符串(客户端层次结构,领土等)都会有多种选择,我只是寻找一个我可以修改的例子,比如当我点击客户端层次结构时,菜单打开了,它会有选择选择那将带我到另一个页面。所以,如果我点击客户层次结构,我可以从诸如公司,名称,办公地点等选项中进行选择。 – BScarl88 2010-07-13 18:25:45

+0

根据我的理解,您需要列表中每个项目的不同选项。上下文菜单不太适合。 – primpap 2010-07-13 19:03:22

回答

0

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

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

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

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

这应该差不多了。请注意,如果您决定进行嵌套列表视图,它将在该列表视图中非常拥挤。