У меня активность Map на довольно сложном макете.Таким образом, я не могу просто выполнить поиск с использованием функции поиска по карте в этом действии, не создав плохое окно (и для сбоя приложения мне потребуется onSearchRequested, чтобы использовать другой контекст, но он не принимает параметры.)
Я сделал еще одно прозрачное всплывающее действие над действием карты, которое сразу вызывает onSearchRequested()
во время onCreate()
, дело в том, что когда я что-то набираю и нажимаю кнопку поиска, ничего не происходит.Панель поиска просто очищается, но остается на экране, как будто побуждает меня искать что-то снова.Я не знаю, что происходит с этим поисковым запросом, но мне нужно, чтобы он был передан в мой MapActivity.
Я подумывал сделать startActivityforResult
и передать результат обратно из всплывающего поискового действия, но у меня все еще есть проблема:зная, как сохранить результат и сделав поиск, уйдите после нажатия поиска
Этот класс загружает окно поиска, вот и все.Он также имеет прозрачное изображение в пространстве между окном поиска и клавиатурой.Если пользователь щелкает там, действие завершается ()
public class PseudoMapSearchActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pseudomapsearch);
onSearchRequested();
findViewById(R.id.blankness).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
}
});
final SearchManager searchManager =
(SearchManager) getSystemService(this.SEARCH_SERVICE);
searchManager.setOnCancelListener(new SearchManager.OnCancelListener() {
public void onCancel() {
searchManager.setOnCancelListener(null);
searchManager.stopSearch();
finish();
}
});
searchManager.setOnDismissListener(new SearchManager.OnDismissListener() {
public void onDismiss() {
searchManager.setOnCancelListener(null);
searchManager.stopSearch();
finish();
}
});
//searchManager.getSearchableInfo(getCallingActivity());
//searchManager.triggerSearch(query, launchActivity, appSearchData)
}
какую searchManager
функцию мне следует вызвать, чтобы вывести из нее набранный пользователем и выбранный поисковый запрос
<activity android:name=".PseudoMapSearchActivity" android:theme="@style/Theme.Transparent" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden">
<meta-data android:name="android.app.default_searchable"
android:value=".PseudoMapSearchActivity" />
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
Поскольку всплывающая активность Pseudomapsearch не будет выполнять фактический поиск, а моя работа с картой будет выполнять всю фактическую обработку этих данных о местоположении, следует ли мне каким-то образом изменить манифест?