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 :

Crash appli suite ajout TextWatcher


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Février 2015
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 104
    Points : 68
    Points
    68
    Par défaut Crash appli suite ajout TextWatcher
    Bonjour,

    Je reprends un code existant et on me demande d'ajouter un textwhatcher sur une activité.
    Plus précisément, c'est une classe qui hérite d'un fragment (Appli tablette) et implémente un Serializable.
    Et je pense que c'est sur ce dernier point que réside mon problème mais je ne sais pas comment le contourner ou le corriger.

    Dès que je rajoute un TextWacher j'ai l'appli qui plante avec ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.RuntimeException: Unable to start activity ComponentInfo{XXXXX/XXXXX/XXXXX/}: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = XXXX.XXXX.XXXXX.XXXXXX.XXXXXX.)
    Et .... Et .....
    En écrivant ce post, j'ai continué à chercher sur le net et j'ai finalement trouvé
    Donc je partage :

    Quand on a une classe Serializable il faut s'assurer que tous les champs le soient, ou alors les déclarer Transient :
    C'est ce que j'ai fait pour mon TextWatcher ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private transient TextWatcher filterTextWatcher = new TextWatcher() {
    		@Override
    		public void onTextChanged(CharSequence s, int start, int before, int count) {
    		} .... etc
    J'ai tellement galéré avec ça, que j'espère que ça rendra service à quelques uns.



    @+

  2. #2
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Février 2015
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 104
    Points : 68
    Points
    68
    Par défaut
    Finalement, je suis deg' et j'ai parlé trop vite.

    L'appli ne crache plus quand je rentre dans l'activité (qui possède cet EditText) mais plante dès que je veux frapper du text.
    Le message est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    java.lang.NullPointerException
             at android.widget.TextView.sendBeforeTextChanged(TextView.java:7607)
    Donc c'est toujours mon problème de TextWatcher et de serializable !!

    Help, help, je craque

    Merci à vous

  3. #3
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Février 2015
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 104
    Points : 68
    Points
    68
    Par défaut
    Alors, voici ma solution.
    Je n'utilise pas les Transient, bien que je sois persuadé que ça soit possible.

    En fait je crée mon propre TextWatcher :

    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
     
    public class MyTextWatcher implements TextWatcher {
            private EditText editText = null;
            private String spText = null;
     
    //Mon constructeur
            public MyTextWatcher(EditText editText, String splText) {
                super();
                this.editText = editText;
                this.spMailText = spText;
            }
     
            @Override
            public void afterTextChanged(Editable arg0) {
                // ToDO
            }
     
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            }
     
            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            }
        }
    Que j'utilise ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mEditText.addTextChangedListener(new MyTextWatcher(mEditText, spText));
    Et plus d'erreur, et ça marche



    Bonne journée à tous

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

Discussions similaires

  1. Manque colonne suite à ajout dans la table
    Par BipBipBO dans le forum Designer
    Réponses: 4
    Dernier message: 27/10/2009, 10h55
  2. Réponses: 6
    Dernier message: 27/05/2009, 22h14
  3. perte de données suite à ajout dans repeater
    Par remitbo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/04/2009, 19h09
  4. Problème SQL suite ajout clause Where
    Par Tipstitou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/03/2009, 05h05
  5. Dysfonctionnement suite ajout clause Iif
    Par Nessie37 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 13/11/2007, 12h38

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