可变搜索提示

时间:2010-02-24 06:03:26

标签: android searchable

在我的android项目的searchable.xml中,我可以指定在没有写入文本时出现在edittext中的提示。有没有办法动态设置它?

在我的操作中,我有两个搜索按钮,即调用startSearch传递自己的参数。我想根据点击的按钮设置反映所选操作的提示 - 例如“搜索电影标题”,“搜索演员”。

我看到它的方式,通过将参数传递给startSearch或使用本地化方法可能实现这一点,就像我可以在values-fr\strings.xml中添加一个提示一样,可能会有替代搜索单击另一个按钮时要定位的资源文件? 如果searchable.xml可以成为选择器,那么我可以让它在不同的状态下以不同的方式行动,不知何故,那也没关系...问题是我没有能够找到实现这些目标的手段。

我想要这样做的真正原因是因为我看到它的方式,当按下设备搜索按钮时,这是传达默认动作的最佳方式,是第一个选项,标题搜索。

更新

为避免混淆,我对任何声明性编程方法更改SearchDialog中的EditText mSearchTextField中的提示感到满意。我不清楚的是如何引用EditText。链接到的代码中的注释显示“这仍然由SearchManager控制......”但我找不到任何关于如何从SearchManager控制它的参考。

4 个答案:

答案 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文件。