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>