Я использую интерфейс поиска в andriod, и, следуя руководству android, я установил интерфейс.
Я создаю SearchableActivity, который будет обрабатывать как пользователь, вводят результат поиска.
Теперь я сталкиваюсь с проблемой в том, что когда пользователь вводит что-то в SearchView
и нажимает на ключ поиска, будет отправлен запрос requset, затем я получу строку запроса и выполняю поиск, но в этот момент текст в 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>