Mam aktywność z nowym paskiem narzędzi. Na tym pasku narzędzi mam tylko jedną ikonę ... moją ikonę SearchView. Kiedy klikam na tę ikonę, otwiera EditText na pasku narzędzi i jestem w stanie napisać, czego szukam. Problem polega na tym, że po kliknięciu ikony wyszukiwania zawartość mojej aktywności (FrameLayout z fragmentem) jest ponownie ładowana.Zapobieganie ponownemu ładowaniu aktywności po kliknięciu SearchView
EDIT:
Plus: gdy kliknięcie na ikonę, to przeładowuje aktywności i otwartą EditText, po tym wynik wyszukiwania Aktywność nazwie, a jeśli nacisnę przycisk wstecz w tej działalności i powrócić do główną działalność, a searchview jest wciąż otwarty.
Jak temu zapobiec?
Ów mój Manifest część wyszukiwania (główną działalność ma ikonę):
<meta-data
android:name="android.app.default_searchable"
android:value=".activity.SearchResult_" />
<activity
android:name=".activity.MainActivity_"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".activity.SearchResult_"
android:label="@string/title_activity_search_result"
android:screenOrientation="portrait" >
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
Thast moim OnCreateOptionsMenu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) MainActivity.this.getSystemService(Context.SEARCH_SERVICE);
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener()
{
public boolean onQueryTextChange(String newText)
{
Log.d("Query", newText);
return true;
}
public boolean onQueryTextSubmit(String query)
{
Log.d("Search", query);
SearchResult_.intent(MainActivity.this).extra("query", query).start();
return true;
}
};
SearchView searchView = null;
if (searchItem != null) {
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
}
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(MainActivity.this.getComponentName()));
}
return super.onCreateOptionsMenu(menu);
}
Ale na przykład ... WhatsApp ma prawie taką samą funkcjonalność, ale ekran nie ładuje się ponownie. Może wyraziłem się źle. SearchView znajduje się na pasku narzędzi MainActivity, a MainActivity jest ponownie ładowany. Po naciśnięciu ikony wyszukiwania wywoływana jest moja aktywność SearchResult. –