IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

listener multi autocompletetextview sur une télé


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut listener multi autocompletetextview sur une télé
    Bonjour,
    je développe une appli pour ma télé sous android.
    Mais j'ai un nouveau problème.
    J'ai une activity qui possède un multiAutocompletetTextView avec un adapter custom.
    Le problème c'est que j'ai mis un onItemClickListener sur le champs, qui fonctionne dans l'émulateur lorsque je clic sur le champ avec la souris.
    Mais sur la télé, il n'y a pas de souris, et je peux donc pas déclencher ce listener.

    Comment faire pour écouter le click sur la proposition au dessus tu clavier ?

    Nom : Capture d’écran_2016-09-18_12-41-55.png
Affichages : 165
Taille : 146,9 Ko

    D'avance merci,
    Cordialement,
    Bebuck.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Après pas mal de recherche, j'ai découvert le listener onSuggestionListener.
    Mais celui ci s'applique sur une SearchView et non un MultiAutocompleteTextView

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Petit up.
    Je pense que je pars pas dans la bonne direction.
    J'ai donc essayé de mettre un listener sur le clavier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    monAdapterCustom.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View view, int i, KeyEvent keyEvent) {
     
                    if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                        // Récupération de la suggestion séléctionné
                        System.out.println("On passe bien ici");
                    }
                    return false;
                }
            });
    Le code passe bien dans la condition, mais je sais pas comment récupérer le texte sélectionné lors de l'appui sur le toucher ENTER.

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    convertSelectionToString(Object selectedItem) ?

    getOnItemSelectedListener ()

    L'utilisateur doit sélectionner un item, ensuite tu auras l'item et donc son texte...
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Merci de votre réponse.
    Le souci c'est que sur la télé on ne peut pas sélectionner l'item dans la "listView" car il n'y a pas de souris, juste le clavier virtuel

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Jouer avec le focus n'est pas possible ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Je n'ai pas essayer celà.
    Mais étant donné que les suggestions s'affichent dans le clavier virtuel, je pense que se serait plus intuitif fe s'en servir. Un peu comme dans les appli de SMS, lorsqu'on clic sur une suggestion, le mot apparait dans le textView du message

  8. #8
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Citation Envoyé par Bebuck Voir le message
    Merci de votre réponse.
    Le souci c'est que sur la télé on ne peut pas sélectionner l'item dans la "listView" car il n'y a pas de souris, juste le clavier virtuel
    Il doit bien y avoir un moyen de saisie: clavier ou souris ou pointeur de télécommande.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  9. #9
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Citation Envoyé par Bebuck Voir le message
    Je n'ai pas essayer celà.
    Mais étant donné que les suggestions s'affichent dans le clavier virtuel, je pense que se serait plus intuitif fe s'en servir. Un peu comme dans les appli de SMS, lorsqu'on clic sur une suggestion, le mot apparait dans le textView du message
    oui c'est à cela que sert l'autocomplete
    Si la réponse vous a aidé, pensez à cliquer sur +1

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Il y a le clavier virtuelle, que j'utilise avec la télécommande.
    Mais ce clavier me permet uniquement de faire des saisies et de cliquer sur les suggestion du clavier.
    Mais je n'arrive pas a trouver le listener qui me permettrait de récupérer l'item sélectionner dans le clavier.

  11. #11
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Bon, j'ai toujours pas trouvé ma solution, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            MultiAutoCompleteTextView multi = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
            final MovieAdapter adapter = new MovieAdapter(this, android.R.layout.simple_dropdown_item_1line, movies);
     
            movies.add(new Movie("http://art.and.facts.site.free.fr/Site/coursimg/images/titanic.jpg", false, "toto est sur un bateau", "16/070/1885", "truc", "Titan", false, 5321, 6.7, 6.9));
            movies.add(new Movie("http://art.and.facts.site.free.fr/Site/coursimg/images/titanic.jpg", false, "toto est sur un bateau", "16/070/1885", "truc", "Titanic", false, 5321, 6.7, 6.9));
            movies.add(new Movie("http://art.and.facts.site.free.fr/Site/coursimg/images/titanic.jpg", false, "toto est sur un bateau", "16/070/1885", "truc", "Baho", false, 5321, 6.7, 6.9));
     
     
            multi.setAdapter(adapter);
            multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
            System.out.println(multi.getText());
            System.out.println(multi.getFilters().toString());
     
            multi.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
     
                    System.out.println("iciiiiii");
                }
     
                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {
                    System.out.println("iciiiiii2");
                }
            });
     
     
            multi.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    System.out.println("iciiiiii3");
                }
            });
     
        }
    Dans l'émulateur je peux cliquer sur les views présentant les items donc le listener OnItemClickListener se déclenche très bien.
    Mais dès que je passe sur la télé, j'ai plus de pointeur. Je peux uniquement me servir du clavier.

    Tout ce que je peux faire, c'est me déplacer sur le clavier virtuel pour me placer sur la suggestion entourée en rouge ci-dessous et appuyer sur ENTER

    Nom : Sans titre.png
Affichages : 111
Taille : 155,6 Ko

  12. #12
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Dans setOnItemSelectedListener, tu récupères une view.
    Tu dois caster la vue en TextView et là getText()
    Si la réponse vous a aidé, pensez à cliquer sur +1

  13. #13
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Merci de votre réponse,
    j'ai essayé le cast en TextView, sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    multi.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                    System.out.println(((TextView) view).getText());
                    System.out.println("iciiiiii");
                }
     
                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {
                    System.out.println("iciiiiii2");
                }
            });

    [Edit] J'arrive a récupérer le texte saisi par l'utilisateur lors de la selection de l'item (par pression du bouton ENTRE) ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    multi.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                    System.out.println("ICI " + textView.getText());
                    return true;
                }
            });
    Mais ça ne me donne pas la suggestion

  14. #14
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Bon,
    ne trouvant pas de solution, j'ai essayé de trouver une autre solution.
    Au lieu d'utiliser un MultiAutocompleteTextView, j'utilise un SearchView qui est beaucoup plus fluide et intuitif.

  15. #15
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Voila je passe le sujet en résolu.
    Finalement j'ai choisi le SearchView avec un adapter custom.
    Pour une raison que j'ignore toujours, avec le MultiAutoCompletTextView, je n'arrivais pas à enlever le clavier et donc pouvoir sélectionner un item (peut être y aurait-il fallut implémenter une action lors du clic sur ENTER pour enlever le clavier virtuel). De plus, le l'autocompletion ne gérait pas bien les suppressions de caractère.

    Avec le SearchView, tout fonctionne parfaitement, même s j'ai pas encore fait mon test de perfs avec une liste d'environs 2000 entrées :$

  16. #16
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Comment tu sélectionnais un item ou cliquais sur une touche dans l'émulateur?

    J'ai vérifié une de mes applications sur l'émulateur tv, mais le clavier ne réagit pas!
    Si la réponse vous a aidé, pensez à cliquer sur +1

  17. #17
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Ah il y a une petite astuce,
    c'est bizarre, mais j'appuie sur les 3 points de l'émulateur pour ouvrir la fenêtre Extended Controls. Puis je ferme cette fenêtre, et le clavier fonctionne.
    Mais je sais pas pourquoi

  18. #18
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    ok merci, je vais essayer ça
    Si la réponse vous a aidé, pensez à cliquer sur +1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Multi boot sur une clé USB
    Par prgasp77 dans le forum Linux
    Réponses: 6
    Dernier message: 23/08/2010, 09h33
  2. Tri multi-criteres sur une liste d'objets
    Par Rolf-IV dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/04/2009, 08h21
  3. [youtube] multi video sur une même div?
    Par bakonu dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 12/05/2008, 15h42
  4. Réponses: 4
    Dernier message: 05/03/2008, 09h43
  5. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo