Avendo la barra degli strumenti nella mia attività, ho cercato di aggiungere la vista di ricerca dal menu ma non riesco ad aggiungere la vista di ricerca nella barra degli strumenti, Come aggiungere la vista di ricerca nella barra degli strumenti delle attività.?Android SearchView nella barra degli strumenti
10
A
risposta
28
ho fatto con Frammento in questo modo.
ho fatto con onTextChangeListener di view search, basta controllare nella vostra Logcat.
Schermata di riferimento:
menu.xml - (res
->menu
)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".HomeActivity">
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" />
</menu>
MainFragment.java
public class MainFragment extends Fragment {
private SearchView searchView = null;
private SearchView.OnQueryTextListener queryTextListener;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
if (searchItem != null) {
searchView = (SearchView) searchItem.getActionView();
}
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
Log.i("onQueryTextChange", newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
Log.i("onQueryTextSubmit", query);
return true;
}
};
searchView.setOnQueryTextListener(queryTextListener);
}
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_search:
// Not implemented here
return false;
default:
break;
}
searchView.setOnQueryTextListener(queryTextListener);
return super.onOptionsItemSelected(item);
}
}
Fatto
3
menu_main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/search"
android:title="@string/search_title"
android:icon="@drawable/ic_search"
android:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.widget.SearchView" />
\ res \ xml \ searchable.xml:
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" />
AndroidManifest.xml:
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light">
<!-- Customize your theme here. -->
</style>
MainActivity.java:
package com.example.searchview;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.SearchView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@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);
// Associate searchable configuration with the SearchView
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return super.onOptionsItemSelected(item);
}
}
Problemi correlati
- 1. Searchview non visualizzato nella barra degli strumenti
- 2. Spazio a sinistra nella barra degli strumenti con SearchView android studio
- 3. Barra di ricerca persistente Android nella barra degli strumenti
- 4. Cambia colore/stile barra degli strumenti su SearchView click
- 5. Contenuto barra degli strumenti Android
- 6. Titolo Android non verrà visualizzato nella barra degli strumenti
- 7. Cambia azioneBarDrawerToggle icon android nella barra degli strumenti?
- 8. Stile barra degli strumenti di Android Spinner
- 9. Android RecyclerVista sotto la barra degli strumenti
- 10. Barra degli strumenti Android collapseModello problema
- 11. Rendere applicabile lo stile del pulsante Barra degli strumenti a UserControls nella barra degli strumenti
- 12. Barra degli strumenti in DialogFragment
- 13. Center SearchView nella barra delle azioni
- 14. Android: barra di stato della barra degli strumenti sovrapposta
- 15. Barra inferiore di Android Barra degli strumenti sovrapposta
- 16. showAsAction = "sempre" viene ignorato nella barra degli strumenti
- 17. Barra degli strumenti e NavigationDrawer
- 18. ActionBar/Barra degli strumenti non visualizzata nella versione Lollipop dell'app
- 19. Personalizza barra degli strumenti WYSIHTML5
- 20. Aggiungi layout personalizzato alla barra degli strumenti
- 21. Barra degli strumenti trasparente per barra degli strumenti di compressione esaurita
- 22. Android v7 Allineamento dei pulsanti della barra degli strumenti
- 23. Configurazione soluzione ma non piattaforma nella barra degli strumenti VS2010
- 24. Come ottenere datepicker nella barra degli strumenti di ricerca jqGrid?
- 25. Come visualizzare l'immagine nella barra degli strumenti utilizzando Objective-C
- 26. Pulsante "Chiudi" materiale nella barra degli strumenti invece di Indietro
- 27. Il pulsante Indietro nella barra degli strumenti non funziona
- 28. Eclipse Juno - lacune nella barra degli strumenti dopo l'aggiornamento
- 29. Toolbar gravità per barra degli strumenti estesa
- 30. Come posso utilizzare VectorDrawable con la barra degli strumenti Android?
Hey! Sto usando il tuo codice ma il mio pulsante di ricerca non sta espandendo/mostrando il campo textedit della ricerca, qualche idea? –
@LucaNicoletti perché hai dimenticato di aggiungere l'inflater nel tuo 'OnCreateView()', controlla questo 'return inflater.inflate (R.layout.fragment_main, container, false);' –
Non funziona per me! L'unico modo per ottenere questo risultato nel mio caso era con un'interfaccia: https://stackoverflow.com/a/37965747/1259763. –