我在 andriod 中使用搜索界面,并按照 android 指南设置了界面。
我创建了一个 SearchableActivity 来处理用户输入的搜索结果。
现在我遇到一个问题,当用户在 中输入内容SearchView
并点击搜索键时,将提交搜索请求,然后我将接收查询字符串并进行搜索,但此时,文本中的文本SearchView
已更改为默认SearchHit
值,而我希望它是查询字符串。
所以我尝试使用searchView.setQuery(query, false);
,但它不起作用,是什么问题?
核心活动代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity_layout);
Log.d("map", "create");
handleIntent(getIntent());
}
public void onNewIntent(Intent intent) {
setIntent(intent);
handleIntent(intent);
}
private void handleIntent(Intent intent) {
Log.d("map", "handleIntent");
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
//try search
Log.d("map", "search and set query:" + query);
searchView.setQuery(query, false); // reset the value in of the SearchView
}
}
AndroidManifest.xml:
<activity
android:name=".ui.MapActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>