Autore Topic: Textwatcher richiamato anche se Edittext vuoto ruotando lo schermo.  (Letto 235 volte)

Offline censore

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Wiko
  • Sistema operativo:
    Windows 10
Nel mio frammento, con 5 Edittext a cui ho agganciato un Textwatcher/afterTextchanged, se vado a ruotare lo schermo, seppure non abbia digitato nulla e quindi mi viene catturato un bel "null", comunque mi parte il metodo agganciato all'inserimento del testo. Perchè?

ecco il codice del frammento:
Codice: [Seleziona]
    public class CustomWatcher implements TextWatcher {
        private View view;
        public CustomWatcher(View view) {
            this.view = view;
        }

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        public void afterTextChanged(Editable editable) {
            String text = editable.toString();
            switch (view.getId()) {
                case R.id.input_manifestazione:
                    manifestazione = text;
                    mListener.onFragmentInteraction00(manifestazione);
                    break;
                case R.id.input_nome:
                    nome = text;
                    mListener.onFragmentInteraction01(nome);
                    break;
                case R.id.input_commissione:
                    commissione = text;
                    mListener.onFragmentInteraction02(commissione);
                    break;
                case R.id.input_data:
                    data = text;
                    mListener.onFragmentInteraction03(data);
                    break;
                case R.id.input_ora:
                    ora = text;
                    mListener.onFragmentInteraction04(ora);
                    break;
            }



        }
    }
}
Il metodo dell'interfaccia, implementato nell'activity, va a variare delle variabili. Perchè?
Però questo accade solo se nel metodo vado a operare su un array boolean, su una variabile boolean (quindi 5 variabili con nomi diversi) non avviene nulla.
Vi prego di aiutarmi.
« Ultima modifica: 22 Luglio 2016, 12:20:42 CEST da censore »

Offline censore

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Wiko
  • Sistema operativo:
    Windows 10
Re:Textwatcher richiamato anche se Edittext vuoto ruotando lo schermo.
« Risposta #1 il: 02 Agosto 2016, 15:21:26 CEST »
0
Ho risolto il problema inserendo questo controllo:
Codice: [Seleziona]
        public void afterTextChanged(Editable editable) {
            String text = editable.toString();

            switch (view.getId()) {
                case R.id.input_manifestazione:
                    if(text.length() > 0 ){
                        mListener.onFragmentInteraction00(text);
                    }
                    break;
In questo modo, sebbene si inneschi il TextWatcher ruotando il cell, se il campo EditText è vuoto, nulla è stato inserito, il flusso non ritorna all'Activity.
« Ultima modifica: 02 Agosto 2016, 15:22:57 CEST da censore »