Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中以编程方式创建简单的下拉列表/列表视图_Java_Android - Fatal编程技术网

Java 如何在android中以编程方式创建简单的下拉列表/列表视图

Java 如何在android中以编程方式创建简单的下拉列表/列表视图,java,android,Java,Android,我想创建一个简单的下拉列表/listview,如下图所示。它应该以编程方式生成,而不使用任何xml布局 注意:我这里没有使用微调器。我还想在单击交换机旁边的ImageView时打开它。 我对此一无所知 有什么想法吗?我用这个。另见。本指南介绍了如何将PopupMenu与xml菜单资源一起使用 在本例中,您需要将单击侦听器附加到ImageView。然后,该侦听器将使用ImageView作为锚创建一个弹出菜单。如下所示:PopupMenu popup=newPopupMenu(imageView.

我想创建一个简单的下拉列表/
listview
,如下图所示。它应该以编程方式生成,而不使用任何xml布局

注意我这里没有使用微调器。我还想在单击交换机旁边的ImageView时打开它。

我对此一无所知

有什么想法吗?

我用这个。另见。本指南介绍了如何将
PopupMenu
与xml菜单资源一起使用

在本例中,您需要将单击侦听器附加到ImageView。然后,该侦听器将使用ImageView作为锚创建一个弹出菜单。如下所示:
PopupMenu popup=newPopupMenu(imageView.getContext(),imageView)

此时,由于您需要动态菜单项,因此有以下选项:

  • 您可以调用PopopMenu.getMenu()并手动使用MenuItems填充它
  • 您可以创建一个xml菜单资源,然后调整/隐藏需要更改的菜单资源

  • 不完美,但它可以工作;)

    弹出\u overflow\u options.xml

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        >
        <item
            android:id="@+id/edit" 
            android:title="@string/edit"/>
        <item
            android:id="@+id/delete" 
            android:title="@string/delete"/> 
    </menu>
    
    
    
    为什么它必须以编程方式复制?Midslefko:我在上面动态添加了行。所以其他组件应该是动态生成的。如果不使用xml,这会变得很复杂,为什么需要以编程方式完成?其他组件是什么?谢谢,我会尝试一下,稍后通知你。谢谢你的回答。但是我用这个有问题。最后一个弹出菜单正在按钮上方加载。我怎么能阻止它。我试过设置重力,但没用。请检查@Barrier,很高兴能帮上忙!锚按钮下方是否有足够的空间?文档中:“如果有空间,弹出窗口将显示在锚固件下方,如果没有空间,弹出窗口将显示在锚固件上方。”@Barrier如果有-在列表的最后一个视图下方添加一些空间。需要更多信息来帮助你。
    Just try to check and implement it
    
        PopupMenu overflowPopupMenu = new PopupMenu(getContext(), finalOverflow); 
        overflowPopupMenu.getMenuInflater().inflate(R.menu.popup_overflow_options, overflowPopupMenu.getMenu()); 
    
        overflowPopupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
             public boolean onMenuItemClick(android.view.MenuItem item) {
                       switch (item.getItemId()) {
                              case R.id.edit: 
                                   break;
                               case R.id.delete:  
                                    break; 
                         }
                               return true;
                     }
       });
      overflowPopupMenu.show();
    
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        >
        <item
            android:id="@+id/edit" 
            android:title="@string/edit"/>
        <item
            android:id="@+id/delete" 
            android:title="@string/delete"/> 
    </menu>