gpt4 book ai didi

从可搜索 Activity 中进行 Android 搜索

转载 作者:行者123 更新时间:2023-11-29 16:23:53 25 4
gpt4 key购买 nike

我有一个包含列表的 Activity 。通过 Android onSearchRequested() 我实现了搜索。结果显示为另一个 Activity 中具有相同适配器的列表。到目前为止工作正常。

此外,我希望能够从第二个 Activity 进行搜索,在同一列表中显示新结果。

我的两个 Activity 的 AndroidManifest.xml:

<activity android:name=".ListActivity" android:label="List">
<meta-data android:name="android.app.default_searchable" android:value=".SearchActivity" />
</activity>

<activity android:name=".SearchActivity" android:label="Results">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable" android:resource="@xml/search" android:value=".SearchActivity" />
</activity>

SearchActivity 的 onResume():

@Override
protected void onResume() {
super.onResume();
Intent queryIntent = getIntent();
String value = queryIntent.getStringExtra(SearchManager.QUERY);
setView(value);
}

setView() 方法对所有对象执行 foreach 循环,将它们添加到结果数组,该结果数组用于列表显示的新适配器。

ca = new CustomAdapter(this, R.layout.customadapter, resultArray);
list.setAdapter(pa);
list.invalidate();

当尝试从搜索栏出现的第二个 Activity 进行搜索时,我可以输入我的搜索值并发送它 - 但列表没有改变(甚至键盘保持不变)。缺少什么?

编辑:试图让它更容易理解。

最佳答案

找到 that question它描述了同样的问题。

我必须重写 onNewIntent() 而不是重写 onResume()

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String value = intent.getStringExtra(SearchManager.QUERY);
setView(value);
}

关于从可搜索 Activity 中进行 Android 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646339/

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