我是 android 开发的新手,一般来说不太擅长编程,但是,我正在处理每个选项卡都有一个 ListView 的选项卡布局。每个选项卡都有自己的 java 文件。我目前正在尝试添加一个上下文菜单,当单击(不是长时间单击)我的 ListView 中的某个项目时,会弹出一个菜单,以便我可以选择一个选项。现在它只显示一个 toast,显示我单击的项目的名称。 ListView 选项当前通过本地字符串声明添加到列表中,这是我的选项卡上的一个示例:
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();
}
});
}
我是否必须为每个要弹出的菜单制作另一个字符串数组,并以某种方式将其连接到另一个字符串?或者根据单击哪个 ListView 项来决定弹出哪个菜单的 if 语句?
最佳答案
首先,如果您希望列表的每个部分都有不同的菜单,请根据您的位置在 onItemClick() 中创建一个 switch 语句。 switch(position){//大小写等
那么你可能想尝试做一个 AlertDialog 而不是嵌套的 ListView .搜索添加列表。然后为列表中的每个位置实现它。然后确保您在 DialogInterface onClick 函数内部实现了另一个开关,以调用一个函数来执行您从列表中执行的操作。//还要确保 alert.show();。
如果您想这样做,那将是我的建议。但是,如果你想做嵌套的 ListView ,它更复杂但可能。
您需要为列表实现自定义列表适配器。并为每个持有另一个 ListView 的人创建一个 View 持有者。一个很好的例子是 here .
这应该差不多了。请注意,如果您决定使用嵌套 ListView ,则该 ListView 内会非常拥挤。
关于 ListView 中的 Android 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239418/