4

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

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

在我看来,这可能可以通过将参数传递给startSearch或使用本地化方法来实现,就像我可以在 中放置一个提示一样values-fr\strings.xml,当单击另一个按钮时,可能会有一个替代搜索资源文件作为目标?或者如果searchable.xml可以将其制成一个选择器,以便我可以让它在不同的状态下以不同的方式表现,那也很好......问题是我无法找到实现其中任何一个的方法。

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

更新

为避免混淆,mSearchTextField对更改SearchDialog. 我不清楚的是如何引用该 EditText。链接到的代码中的注释说“这仍然由 SearchManager 控制......”但我也找不到任何关于如何从 SearchManager 控制它的参考。

4

4 回答 4

1

Android 的 XML 不太适合动态性。您可能必须在 Activity 的代码中解决此问题。

您可以通过使用更改 EditText 中的提示在代码中执行此操作setHint()。然后你只需要按钮上的某种监听器(或者可能是 Spinner)。对于按钮,您只需使用setOnClickListener(); 对于微调器setOnItemSelectedListener()会更合适。

于 2010-02-24T06:11:27.413 回答
1

AFAIK,没有任何方法可以访问为搜索提供的 EditText。

于 2010-03-10T11:10:05.090 回答
0

我不确定您的 startSearch 是什么样的,但您正在寻找这样的东西:

private void startSearch(CharSequence hint) {
    EditText searchBox = (EditText)findViewById(R.id.my_edit_text);
    searchBox.setHint(hint);
于 2010-03-10T22:44:40.770 回答
0

您可以在运行时将元数据添加到活动中吗?如果可以,那么您可以为搜索分配不同的 xml 文件。

于 2012-06-25T18:17:29.930 回答