--- RÉSOLUTION DE PROBLÈMES - AJOUTÉ LES RÉPONSES À MODIFIER DU TEXTE ---
Je suis à l'aide de l'ActionBar Sherlock dans mon Application Android. Là j'ai envie de montrer un searchView. Il fonctionne très bien jusqu'à présent, mais je me rends compte, je suis en train de faire quelque chose de mal en essayant de le personnaliser.
J'ai créer cette façon:
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);
Je veux faire deux choses:
Changer la couleur du texte "Rechercher" qui est indiqué dans la boîte de texte du champ. Il semble que j'ai changé avec l'ensemble du style de texte dans mon thème, mais j'espère que je peux mettre une couleur en quelque sorte.
Lors de l'ouverture de cette recherche, il apparaît sur le côté gauche de la Barre d'Action. Mais j'ai besoin de lui sur le côté droit. L'icône (la loupe) est en fait sur le côté droit de la barre, mais cliquer sur le bouton ouvre la EditTextfield sur le côté gauche. J'ai essayé d'utiliser LayoutParams mais il me manque quelque chose d'essentiel lorsque vous essayez de l'ajouter à la Barre d'Action en utilisant LayoutParams.
J'espère donc que quelqu'un pourrait m'aider.
Merci beaucoup, Tobias
---- EDIT ----
Bon, une chose est donc résolu avec cette déjà. L'ajout de l'ActionBar par XML, le TextEdit pour le droit.
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);
Et dans mon 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" />
Ainsi, au moins un mystère résolu (pourquoi cela fait une différence). Mais le XML nouvellement créé et Ne se ferme plus lors de l'appel
searchMenuItem.collapseActionView();
Donc, il est encore quelque chose de mal avec elle.
--- EDIT 2 ---
Juste pour vous laisser savoir. J'ai trouvé la solution pour la couleur du texte. Il peut être réalisé à l'aide de la AutoCompleteTextView de la 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));
Ainsi, le dernier problème que j'ai est que le SearchView n'est pas la fermeture de plus lors de la soumission d'un texte. Donc collapseActionView (), etc. ne fonctionne pas. Des idées?
--- EDIT 3 ---
Bon, j'ai trouvé une solution. Je ne sais pas si c'est la bonne façon de le faire, mais lors de l'utilisation de
((SearchView) searchMenuItem.getActionView()).setIconified(true);
il ferme l'EditText
Je dois le faire deux fois car la première fois, c'est seulement la "suppression" de mon texte d'entrée et montre le "soupçon", alors que la seconde est la "fermeture" de l'Indice EditText et s'effondre le searchView à la loupe. Maladroit style, mais il fonctionne. :-)