Ho un'attività con la nuova barra degli strumenti. In questa barra degli strumenti ho solo una icona ... la mia icona SearchView. Quando clicco su quell'icona si apre un EditText nella barra degli strumenti e sono in grado di scrivere ciò che sto cercando. Il problema è che quando faccio clic sull'icona Cerca, il contenuto della mia attività (FrameLayout con frammento) viene ricaricato.Previene l'attività di ricarica quando si fa clic su SearchView
EDIT:
più: quando si clicca sull'icona, si ricarica l'attività e EditText aperta, dopo che il SearchResult attività si chiama, e se si preme il pulsante indietro in quell'attività torno alla MainActivity e la searchview è ancora aperto.
Come impedirlo?
thats il mio parte manifesto di ricerca (MainActivity ha l'icona):
<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 mia 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);
}
Ma per esempio ... whatsapp ha quasi la stessa funzionalità ma lo schermo non si ricarica. Forse mi sono sbagliato. SearchView si trova sulla barra degli strumenti MainActivity e MainActivity viene ricaricato. Dopo aver premuto l'icona di ricerca, viene chiamata la mia attività SearchResult. –