我是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项单击弹出哪个菜单?
答案 0 :(得分:0)
首先,如果您希望列表的每个部分都有不同的菜单,请在onItemClick()中创建一个取决于您的位置的switch语句。 switch(position){ //cases and such
然后你可能想要尝试而不是嵌套的ListView是尝试做AlertDialog。搜索添加列表。然后为列表中的每个位置实现该功能。然后确保在DialogInterface onClick函数内部实现另一个开关,以调用函数来执行从列表中执行的操作。还要确保alert.show();.
如果你想这样做,这将是我的建议。但是,如果要进行嵌套列表视图,则更复杂但可能。
您需要为您列出自定义列表适配器。并为每个包含另一个列表视图的人创建一个视图持有者。一个很好的例子是here。
那应该是这样做的。请注意,如果您决定执行嵌套列表视图,那么列表视图中的内容会非常拥挤。