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 :

Strange EditText behaviour !


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut Strange EditText behaviour !
    Bonjour à tous,

    Comme dit dans le titre je fais face à un comportement des plus étrange sur un EditText dans une de mes applications:
    J'essai de mettre le text saisi par l'utilisateur en majuscule "à la volée", j'ai pour cela tenté 2 choses :
    - dans le .xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                     <EditText
    	    	    	android:id="@+id/id_qui_va_bien_edit"
    	    	        android:layout_width="match_parent"
    	    	        android:layout_height="wrap_content"
    	    	        android:background="@drawable/border_edit"
    	    	        android:padding="5dp"
    			android:textSize="14sp"
    			android:hint="@string/trucmuche"
    			android:gravity="center"
    			android:singleLine="true"
    			android:textStyle="bold"
    			android:textAllCaps="true"
    	    	        />
    - dans le code java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                     editText.setOnKeyListener(new OnKeyListener() {
    			@Override
    			public boolean onKey(View v, int keyCode, KeyEvent event) {
     
    				if (event.getAction()!=KeyEvent.ACTION_DOWN) {
    					String res = editText.getText().toString();
    					editText.setText(res.toUpperCase());
    					editText.setSelection(editText.length());
    				}
    				return false;
    			}
    		});
    et resultat :
    - cela fonctionne sur mon émulateur GenyMotion
    - mais PAS sur de vrais devices!

    Quelqu'un saurait comment corriger cela?

    D'avance merci

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    public static final int textAllCaps

    Added in API level 14
    Quel est la version de ton device ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut
    Salut

    cela ne fonctionne pas sur:

    - Nexus 4 : Android 4.4.2
    - Nexus 5 : 4.4.2 egalement
    - Galaxy player : 2.3.6

    En gros aucun device physique...

    De plus, admettons que le allCaps ne fonctionne pas... le keyListener que j'ai ajouté (même si je trouve ca moche) devrait convertir la saisie user et la mettre en upperCase :s

    EDIT:
    Pour info mon emul Genymotion est un S4 en 4.2.2... mais ce code ne fonctionne pas sur le S3 qui est egalement en 4.2.2..

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    si tu teste avec cela :
    http://developer.android.com/referen...roid:inputType

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:inputType="textCapWords"
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut
    Bonjour

    Alors,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:inputType="textCapWords"
    se contente de mettre la 1ere lettre en majuscule

    par contre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    android:inputType="textCapCharacters"
    fonctionne correctement

    Merci pour l'info !

    EDIT :
    chose très étrange toutefois : ca ne marche plus sur mon emulateur du coup!
    c'est quand même dingue ca :p

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    La gestion du clavier ainsi que des input est pourri sur Android, chaque constructeur fait ce qu'il veut ca fait que souvent tu es obligé de bidouillé pour arriver au résultat escompté.

    se contente de mettre la 1ere lettre en majuscule
    Je me rappellais plus hier quel c'était et pas eu le temps de regarder la doc merci de l'info.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

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

Discussions similaires

  1. Comment afficher une valeur dans un edittext avec un autre programme
    Par pitizone dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 14/05/2007, 07h45
  2. [API Windows] Probleme avec EDITTEXT et LISTBOX
    Par Dev-FX dans le forum Windows
    Réponses: 6
    Dernier message: 27/12/2006, 13h42
  3. Réponses: 2
    Dernier message: 17/08/2006, 12h36
  4. [XML] Configurer la couleur d'un edittext
    Par Turlututuchapopointu dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/03/2006, 10h45

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