0

我有一个带有文章“部分”列表的微调器 - “新闻,体育,本地,讣告......”等。

它还兼作该部分的标题,因此用户知道他们正在查看哪些文章。

当用户进行搜索时,它会自动选择“搜索”部分,因此微调器位于“搜索”上,并显示搜索结果。问题是,“搜索”不是一个部分,所以我不希望用户能够手动选择“搜索”部分,因为什么都不会发生。

我以为我可以从生成该微调器选项的 XML 文件中删除“搜索”,但是当他们进行搜索时,如何手动将微调器的文本设置为“搜索”?

有没有更好/另一种我没有想到的方法来做到这一点?

4

1 回答 1

0

这取自我之前发布的这个答案 - 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");

这里还有一些其他好的解决方案 -

于 2012-11-13T19:51:09.467 回答