--- risolto i problemi - ha aggiunto il RISPOSTE IN MODIFICA TESTO ---ActionBar Android Personalizza la ricerca Visualizza
sto usando il ActionBar
Sherlock nella mia app Android. Lì voglio mostrare un SearchView
. Funziona bene finora, ma mi rendo conto che sto facendo qualcosa di sbagliato quando cerco di personalizzarlo.
ho creare in questo modo:
searchView.setQueryHint("Search: ");
searchView.setOnQueryTextListener(this);
searchView.setOnCloseListener(...);
searchMenuItem = menu.add("Search place");
searchMenuItem.setIcon(R.drawable.ic_action_search)
.setActionView(searchView)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
voglio fare due cose:
Modificare il colore del testo "Cerca", che viene visualizzato nel campo di testo che appare. Sembra che l'ho modificato con lo stile di testo generale nel mio tema, ma spero di poter impostare un colore separato in qualche modo.
Quando si apre questa vista di ricerca, appare sul lato sinistro della barra delle azioni. Ma ho bisogno sul lato destro. L'icona (la lente di ingrandimento) si trova in realtà sul lato destro della barra, ma premendo si apre EditTextfield sul lato sinistro. Ho provato ad usare LayoutParams ma mi manca qualcosa di essenziale quando provo ad aggiungerlo alla barra delle azioni usando LayoutParams.
Quindi spero che qualcuno mi possa aiutare in questo.
La ringrazio molto, Tobias
---- ---- EDIT
Okay, una cosa è risolto con questo già. Aggiungendo ActionBar tramite XML, TextEdit si trova a destra.
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
Log.e(TAG, "searchView: " + searchView);
E nella mia menu.xml
<item android:id="@+id/action_search"
android:title="Search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:actionViewClass="com.actionbarsherlock.widget.SearchView" />
Così almeno un mistero risolto (perché mai questo ha fatto la differenza). Ma l'XML appena creato non si chiude più quando si chiama
searchMenuItem.collapseActionView();
Quindi c'è ancora qualcosa di sbagliato in esso.
--- --- EDIT 2
Giusto per farvi sapere. Ho trovato la soluzione per il colore del testo. Esso può essere ottenuto utilizzando l'AutoCompleteTextView del SearchView:
AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(R.color.white));
searchText.setTextColor(getResources().getColor(R.color.white));
Quindi l'ultimo problema che ho è che il SearchView non chiude più al momento della presentazione di un testo. Quindi collapseActionView() ecc. Non funziona. Qualche idea?
--- --- EDIT 3
Va bene, ho trovato una soluzione.Non so se questo è il modo corretto di farlo, ma quando si utilizza
((SearchView) searchMenuItem.getActionView()).setIconified(true);
chiude il mio testo di input EditText
devo farlo due volte perché la prima volta è solo "l'eliminazione" e mostra il "suggerimento" mentre il secondo uso "chiude" il suggerimento EditText e collassa il searchView all'amplificatore. Stile maldestro ma funziona. :-)
prega di dare un'occhiata a questa domanda. http://stackoverflow.com/questions/13560438/android-actionbar-sherlock-search-filter – itsrajesh4uguys
Bene, se ho capito bene, lo stanno risolvendo usando un proprio EditText. Speravo in un modo semplice "setTextColor", ma non sembra essere così facile. –
Ok, ho risolto il problema del colore. Ma c'è ancora la chiusura del SearchView che non funziona. Grazie comunque per il tuo aiuto! –