我正在尝试创建一个子菜单,其中有3组项目被添加到我的java代码中,并且我希望将它们分开。这是菜单xml:
<item
android:id="@+id/action_search"
android:orderInCategory="100"
android:icon="@drawable/ic_menu_search"
app:showAsAction="always"
android:title="search"
app:actionViewClass="android.support.v7.widget.SearchView" />
<item
android:id="@+id/action_filter"
android:orderInCategory="110"
android:icon="@drawable/ic_menu_filter"
app:showAsAction="always"
android:title="filter">
<menu>
<group android:id="@+id/no_filter"
android:orderInCategory="101">
</group>
<group android:id="@+id/genre_filters"
android:orderInCategory="102">
</group>
<group android:id="@+id/author_filters"
android:orderInCategory="103">
</group>
</menu>
</item>
这是我在onCreateOptionsMenu函数中的内容:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.search_and_filter_bar, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setOnQueryTextListener(this);
MenuItem filterItem = menu.findItem(R.id.action_filter);
SubMenu filters = filterItem.getSubMenu();
current_filter = filters.add(R.id.no_filter,120, Menu.NONE,"All Books");
filters.add(R.id.genre_filters,121, Menu.NONE,"Fantasy");
filters.add(R.id.author_filters,122, Menu.NONE,"JK Rowling");
}
据我所知,群体之间应该有一条自动的分界线,但没有。有什么想法吗?
顺便说一下,当我尝试一些东西时,我在XML中添加了一些项,它们出现在我以编程方式添加的项之上,而忽略了组的顺序。
谢谢!
发布于 2018-06-12 04:34:06
我建议自定义对话框,有不同的选项(例如)。您可以使用要在其中显示的选项创建一个CharSequence数组,然后使用setItems(CharSequence[], DialogInterface.OnClickListener).
方法将该数组传递给AlertDialog.Builder,也可以使用您自己的布局,就像web中的许多示例一样。
举个例子:
CharSequence colors[] = new CharSequence[] {"red", "green", "blue", "black"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// the user clicked on colors[which]
}
});
builder.show();
然后,您可以在任何位置显示此菜单,也可以显示为菜单。
https://stackoverflow.com/questions/50804600
复制相似问题