ListView 中的 Android 上下文菜单

标签 android listview menu

我是 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/

相关文章:

android - 如何在 Android 中以编程方式更改 ConstraintLayout subview 的约束?

javascript - deviceReady 在PhoneGap 应用程序中不起作用,怎么办?

java - 为什么我无法在 Android ListView 中选中单个单选按钮

css - QT5 样式 QPushButton 以移除其周围的空间

javascript - Web 菜单按钮保持不同的颜色

java - Android:如何使用扩展布局类作为ListView行?

android - ListView 不会在 notifyDataSetChanged 上刷新

c# - 在运行时添加属性

Android Catch Notes 应用程序,如圆形菜单

java - 检测来自 VPN 服务 + 数据包阻塞的应用程序请求[Android]