Autore Topic: aggiorna edittext  (Letto 1027 volte)

Offline marcocampoli

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu 10.4
aggiorna edittext
« il: 27 Gennaio 2012, 20:59:15 CET »
0
Salve a tutti. Il mio problema è:
Ho tre edittext, una contentente il costo totale di un prodotto, la seconda la percentuale di sconto e la terza il valore dello sconto. Purtroppo nn ho trovato ancora un evento che, alla modifica della editext relativa alla percentuale dello sconto, mi modifichi anche quella relativa al costo scontato.... Chi può aiutarmi???....grazie a tutti.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aggiorna edittext
« Risposta #1 il: 27 Gennaio 2012, 21:06:13 CET »
0
Codice (Java): [Seleziona]
TextWatcher watcher = new TextWatcher(){

    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    @Override
    public void afterTextChanged(Editable editable) {
                //calcoli il nuovo sconto e lo assegni all'editText con il valore di sconto
    }
};

editTextCostoTotale.addTextChangedListener(watcher);
editTextPercentualeSconto.addTextChangedListener(watcher);

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:aggiorna edittext
« Risposta #2 il: 27 Gennaio 2012, 22:07:29 CET »
0
Ricky scusa una cosa. A me è capitato una volta di dover eseguire delle operazioni quando si riempiva un EditText. Vorrei sapere se è logicamente/semanticamente/praticamente sbagliato scrivere queste istruzioni.
In particolare il codice è questo:
Codice (Java): [Seleziona]
editText.setOnKeyListener(new OnKeyListener() {
                        @Override
                        public boolean onKey(View v, int keyCode, KeyEvent event) {
                                controllo();
                                return false;
                        }
                });
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline marcocampoli

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu 10.4
Re:aggiorna edittext
« Risposta #3 il: 27 Gennaio 2012, 23:51:26 CET »
0
Ciao. Prima di ogni cosa grazie del tuo aiuto...sembra che il metodo si avvia regolarmente, però mi tira fuori un errore che nn avevo mai visto in precedenza: (StackOverflowError.... tra le righe ho ritrovato l'ultmia riga del seguente codice, che ho inserito dove mi dicevi)
Codice (Java): [Seleziona]
        public void afterTextChanged(Editable editable)
        {
                String valSc= etSconto.getText().toString();
                if(!valSc.equals("") && !valSc.equals('0') && totale!=0)
                {
                        double sc= Double.valueOf(valSc);
                        prezzoSc= totale*(sc/100);
                       
                        /*String prsc= String.valueOf(prezzoSc);
                        if(prsc.length() > 5)
                        {
                                String[] prscarr= prsc.split("\\.");
                                if(prscarr.length > 1)
                                        prscarr[1]= prscarr[1].substring(0, 1);
                               
                                prsc= prscarr.toString();
                                prezzoSc= Double.valueOf(prsc);
                        }*/

                        etValSconto.setText(String.valueOf(prezzoSc));
                }
        }

il codice commentato puoi anche saltarlo perchè nn l'ho ancora controllato :-) (in pratica mi faccio qualche controllo se il testo è vuoto ecc ecc)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aggiorna edittext
« Risposta #4 il: 28 Gennaio 2012, 16:38:41 CET »
+2
Ciao. Prima di ogni cosa grazie del tuo aiuto...sembra che il metodo si avvia regolarmente, però mi tira fuori un errore che nn avevo mai visto in precedenza: (StackOverflowError.... tra le righe ho ritrovato l'ultmia riga del seguente codice, che ho inserito dove mi dicevi)

Ma quel watcher l'hai impostato anche a etValSconto? Se si è quello il problema, va il loop! :)

Ricky scusa una cosa. A me è capitato una volta di dover eseguire delle operazioni quando si riempiva un EditText. Vorrei sapere se è logicamente/semanticamente/praticamente sbagliato scrivere queste istruzioni.

Ma non credo... se funziona direi che va benone :)
Tramite TextWatcher riesci ad avere qualche informazione in più, vedi ad esempio i parametri che ti passa beforeTextChanged e onTextChanged

Offline marcocampoli

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu 10.4
Re:aggiorna edittext
« Risposta #5 il: 29 Gennaio 2012, 01:54:51 CET »
0
si, era così .... Grazie mille!...... un'ultima cosa. Se io vorrei inserire il simbolo della percentuale dopo i numeri della edit text (ad es 12%), mi consigli di utilizzare lo stesso metodo???

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aggiorna edittext
« Risposta #6 il: 29 Gennaio 2012, 02:29:35 CET »
0
si, era così .... Grazie mille!...... un'ultima cosa. Se io vorrei inserire il simbolo della percentuale dopo i numeri della edit text (ad es 12%), mi consigli di utilizzare lo stesso metodo???

Si, devi solo studiarti un modo per prendere il valore senza considerare il simbolo di %

Offline marcocampoli

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    ubuntu 10.4
Re:aggiorna edittext
« Risposta #7 il: 29 Gennaio 2012, 11:25:23 CET »
0
Grazie del tuo aiuto!