gpt4 book ai didi

android - 动态设置搜索提示

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:02:09 25 4
gpt4 key购买 nike

有人知道如何动态设置 android 搜索对话框提示吗?我尝试做类似的事情:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/search_label"
android:hint="@string/search_hint"
android:id="@+id/search_dialog_text">
</searchable>

某处:

@Override
public boolean onSearchRequested() {
Bundle appSearchData = new Bundle();
appSearchData.putString("SomeSpecificParam", SomeClass.class.getName());
startSearch("", false, appSearchData, false);
EditText text = (EditText )findViewById(R.id.search_dialog_text);
text.setHint("Search something else");
return true;
}

但文本等于空。

期待您的建议。谢谢。

最佳答案

这感觉很老套,但对我有用——不是真正的动态,但可以在我需要的两个搜索提示之间交替:

  1. 我创建了第二个 searchable.xml(如 Android search docs 中所述),称为 searchable2.xml,并定义了我的第二个搜索提示。
  2. 我创建了一个从我的原始 Activity 扩展而来的虚拟 Activity ,并且不覆盖任何内容。
  3. 在 list 中,虚拟 Activity 与新的 searchable2.xml 相关联:

    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SEARCH" />
    </intent-filter>
    <meta-data android:name="android.app.searchable"
    android:resource="@xml/searchable"/>
    </activity>

    <activity android:name=".DummyActivity">
    <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SEARCH" />
    </intent-filter>
    <meta-data android:name="android.app.searchable"
    android:resource="@xml/searchable2"/>
    </activity>
  4. 在“MainActivity”中,我覆盖了“onSearchRequested()”以引用适当的可搜索 Activity :


    public boolean onSearchRequested()
    {
    SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);<br/>
    if(searchManager!=null)
    {
    // start the search with the appropriate searchable activity
    // so we get the correct search hint in the search dialog
    if(/* your condition here */)
    searchManager.startSearch(null, false,new ComponentName(this, MainActivity.class), null, false);
    else
    searchManager.startSearch(null, false,new ComponentName(this, DummyActivity.class), null, false);<p></p>

    return true;
    }
    return false;
    }

讨厌。但危急时刻需要危急措施......

AFAIK,从查看 Android 源代码来看,该类仅用于查找元数据,但如果有人有不同的看法,请告诉我。

关于android - 动态设置搜索提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4011867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com