在我的android项目的searchable.xml
中,我可以指定在没有写入文本时出现在edittext中的提示。有没有办法动态设置它?
在我的操作中,我有两个搜索按钮,即调用startSearch
传递自己的参数。我想根据点击的按钮设置反映所选操作的提示 - 例如“搜索电影标题”,“搜索演员”。
我看到它的方式,通过将参数传递给startSearch
或使用本地化方法可能实现这一点,就像我可以在values-fr\strings.xml
中添加一个提示一样,可能会有替代搜索单击另一个按钮时要定位的资源文件? 或如果searchable.xml
可以成为选择器,那么我可以让它在不同的状态下以不同的方式行动,不知何故,那也没关系...问题是我没有能够找到实现这些目标的手段。
我想要这样做的真正原因是因为我看到它的方式,当按下设备搜索按钮时,这是传达默认动作的最佳方式,是第一个选项,标题搜索。
更新
为避免混淆,我对任何声明性或编程方法更改SearchDialog
中的EditText mSearchTextField
中的提示感到满意。我不清楚的是如何引用EditText。链接到的代码中的注释显示“这仍然由SearchManager控制......”但我找不到任何关于如何从SearchManager控制它的参考。
答案 0 :(得分:1)
Android的XML不能很好地适应活力;你可能不得不在Activity的代码中解决这个问题。
您可以通过使用setHint()
更改EditText中的提示来在代码中执行此操作。然后你只需要一个按钮上的某种听众(或者可能是一个Spinner)。对于Button,您只需使用setOnClickListener()
;对于微调器setOnItemSelectedListener()
更合适。
答案 1 :(得分:1)
AFAIK,您无法访问为搜索提供的EditText。
答案 2 :(得分:0)
我不确定你的startSearch是什么样的,但是你正在寻找这样的东西:
private void startSearch(CharSequence hint) {
EditText searchBox = (EditText)findViewById(R.id.my_edit_text);
searchBox.setHint(hint);
答案 3 :(得分:0)
您可以在运行时向活动添加元数据吗?如果可以,那么您可以为搜索分配不同的xml文件。