Android Barre d'Action SearchView que la saisie semi-automatique?
Je suis à l'aide d'un SearchView dans la Barre d'Action. Je veux utiliser la fonctionnalité saisie semi-automatique sur l'affichage de la recherche pour obtenir des résultats à partir de la base de données.
Est-ce possible? Ou dois-je besoin d'utiliser un zone de texte, puis ajouter la saisie semi-automatique qui?
Vous devez vous connecter pour publier un commentaire.
J'ai utiliser des AutoCompleteTextView et l'ajouter dans ActionBar.
et Votre Mise en page:
Édité:
Veuillez vérifier cette et ce lien il peut vous aider. le code est ici.
Donc j'ai juste eu à le faire pour la v7 version et a été consterné de découvrir que je ne peut pas simplement la valeur de la carte avec un ArrayAdapter.
Je n'ai pas envie d'utiliser un stock AutoCompleteTextView (comme le premier commentaire ici), car alors vous êtes absent dehors sur un certain nombre de snazzy caractéristiques de SearchView, comme la petite icône de recherche et le bouton x.
J'ai donc étendu SearchView et obtenu ceci:
Vous pouvez l'utiliser dans votre menu xml pour l'ActionBar comme suit:
Vous pouvez également ajouter la fonctionnalité de clic à la liste de saisie semi-automatique (par exemple, la définition du texte à l'EditText):
Et ici est une version similaire pour le vieux android.widget de.SearchView:
onQueryTextChange()
(SearchView.OnQueryTextListener
) et a des choses à travailler assez rapidement.CursorAdapter
.Voici une autre méthode en utilisant
CursorAdapter
:ExampleActivity.java
Maintenant, vous devez créer un adaptateur étendue de
CursorAdapter
:ExampleAdapter.java
Veuillez noter: lorsque vous importez des
CursorAdapter
de ne pas importer le soutien Android version, l'importation de la normeandroid.widget.CursorAdapter
à la place.La carte sera également besoin d'une mise en page personnalisée:
res/layout/item.xml
Vous pouvez maintenant personnaliser les éléments de la liste en ajoutant du texte ou de l'image vue de la mise en page et de les remplir avec les données de la carte. Maintenant, vous avez besoin d'un SearchView élément de menu:
res/menu/example.xml
Ensuite créer une base de configuration:
res/xml/searchable.xml
Enfin, ajoutez ceci à l'intérieur de l'activité pertinente de la balise dans le fichier manifeste:
AndroidManifest.xml
Veuillez noter: La
@string/search
chaîne utilisée dans les exemples doivent être définis dans values/strings.xml, aussi n'oubliez pas de mettre à jour la référence àcom.example
pour votre projet.Voici l'original tutoriel pour référence:
http://tpbapp.com/android-development/android-action-bar-searchview-tutorial
Oui c'est possible. Construire un tableau (comme dans un SQLiteDatabase) pour vos suggestions et format de la table avec les colonnes requises.
Voir ce lien
J'ai aussi été confronté à ce problème pour l'auto de recherche complet de la vue et de le fixer sans l'aide supplémentaire de la mise en page et auto texte complet de la vue, il y a une classe appelée SearchAutoComplete. J'ai utilisé cette fonction pour obtenir l'auto-complétion, il suffit de mettre une simple liste de l'adaptateur, qui contiennent une liste de tableaux d'éléments de suggérer avec affichage de la recherche. La valeur de la carte à votre SearchAutoComplete et auto-complétion qui travaillera ci-dessous mon code. Rappelez-vous que vous n'avez pas à ajouter toute la mise en page personnalisée. Il suffit de remplacer votre onCreateOptionsMenu(...) la méthode avec le mien code:
Cliquant sur la suggestion de l'élément de l'élément doit apparaître sur l'affichage de la recherche afin d'ajouter le code ci-dessous juste après la configuration de votre adaptateur pour searchAutoComplete à l'intérieur de la onCreateOptionmenu(...) la méthode
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView$SearchAutoComplete.setTextColor(int)' on a null object reference
. Il semble que le searchAutoComplete renvoie toujours null pour moi. Aucune idée de pourquoi c'est?Vous pouvez le faire avec un CursorAdapter par quelque chose comme:
pour androidx version