代码之家  ›  专栏  ›  技术社区  ›  David Hedlund

变量搜索提示

  •  4
  • David Hedlund  · 技术社区  · 14 年前

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

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

    在我看来,通过将参数传递给 启动搜索 或者使用本地化方法,就像我可以在 values-fr\strings.xml ,单击另一个按钮后,可能会有另一个搜索资源文件作为目标? 如果 搜索XML 可以做成一个选择器,这样我可以让它在不同的状态下有不同的行为,不知何故,那也很好…问题是我还没有找到实现这些目标的方法。

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

    更新

    为了避免混淆,我对任何声明式都很满意 编辑文本中更改提示的编程方法 mSearchTextField 在里面 SearchDialog . 我不清楚的是如何引用那个编辑文本。链接到的代码中的注释说“这仍然由SearchManager控制…”,但我也找不到任何有关如何从SearchManager控制它的引用。

    4 回复  |  直到 12 年前
        1
  •  1
  •   Karan    14 年前

    Afaik,您无法访问为搜索提供的editText。

        2
  •  1
  •   Dan Lew    14 年前

    Android的XML并不能很好地支持动态性;您可能需要在活动的代码中解决这个问题。

    您可以在代码中通过使用 setHint() . 然后你只需要一个听按钮的人(或者可能是一个旋转器)。一个按钮,你只要用 setOnClickListener() 对于纺纱工 setOnItemSelectedListener() 会更合适。

        3
  •  0
  •   Segfault    14 年前

    我不确定你的startsearch是什么样子,但这就是你要找的:

    private void startSearch(CharSequence hint) {
        EditText searchBox = (EditText)findViewById(R.id.my_edit_text);
        searchBox.setHint(hint);
    
        4
  •  0
  •   serveace6    12 年前

    你能在运行时向一个活动添加元数据吗?如果可以,那么可以为搜索分配不同的XML文件。