我有一个带有文章“部分”列表的微调器 - “新闻,体育,本地,讣告......”等。
它还兼作该部分的标题,因此用户知道他们正在查看哪些文章。
当用户进行搜索时,它会自动选择“搜索”部分,因此微调器位于“搜索”上,并显示搜索结果。问题是,“搜索”不是一个部分,所以我不希望用户能够手动选择“搜索”部分,因为什么都不会发生。
我以为我可以从生成该微调器选项的 XML 文件中删除“搜索”,但是当他们进行搜索时,如何手动将微调器的文本设置为“搜索”?
有没有更好/另一种我没有想到的方法来做到这一点?
我有一个带有文章“部分”列表的微调器 - “新闻,体育,本地,讣告......”等。
它还兼作该部分的标题,因此用户知道他们正在查看哪些文章。
当用户进行搜索时,它会自动选择“搜索”部分,因此微调器位于“搜索”上,并显示搜索结果。问题是,“搜索”不是一个部分,所以我不希望用户能够手动选择“搜索”部分,因为什么都不会发生。
我以为我可以从生成该微调器选项的 XML 文件中删除“搜索”,但是当他们进行搜索时,如何手动将微调器的文本设置为“搜索”?
有没有更好/另一种我没有想到的方法来做到这一点?
这取自我之前发布的这个答案 - Spinner 上的 setPrompt 不起作用
几乎可以回答您的问题 - 不,有几种方法可以解决这个问题 - 这篇文章将展示一个,其他一些将在底部的链接中
您可以使用一个按钮并从中创建一个下拉列表。
首先,在你的布局中用一个按钮替换你的微调器,并给它你提供提示的文本
然后将您的微调器上的项目列表移动到一个名为 optionmenu.xml 的文件中
然后声明您的按钮并为其设置一个 onClickListener。
在该方法中,输入以下代码
在第四行,您指定的布局是您的选项菜单布局
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.layout.optionmenu, popup.getMenu());
popup.show();
} When you call this method, you need to do the following
View p = (View)findViewById(R.id.spinner button);
showPopup(p);
在此代码价格中,View p 是您要显示菜单上角位置的视图。所以在这种情况下,这将是你的按钮
在此处查看答案以实现它 - android 菜单代码不起作用
在每个case:语句中,放置一行将您的按钮文本设置为字符串。
case R.id.item1:
button.setText("item1");
这里还有一些其他好的解决方案 -