Autore Topic: problema tastiera ed editText  (Letto 1257 volte)

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
problema tastiera ed editText
« il: 12 Marzo 2013, 15:04:26 CET »
0
Salve,
ho un problema.. nella mia app nei vari EditText gli utenti dovranno inserire valori numerici.
Ma come posso fare in modo che anche se l'utente inserisce la virgola l'applicazione non crashi effettuando i calcoli?

praticamente vorrei che il programma rimanga attivo e funzionante (nei calcoli) anche inserendo la virgola al posto del punto, e viceversa...
come potrei fare?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #1 il: 12 Marzo 2013, 15:16:06 CET »
0
Salve,
ho un problema.. nella mia app nei vari EditText gli utenti dovranno inserire valori numerici.
Ma come posso fare in modo che anche se l'utente inserisce la virgola l'applicazione non crashi effettuando i calcoli?

praticamente vorrei che il programma rimanga attivo e funzionante (nei calcoli) anche inserendo la virgola al posto del punto, e viceversa...
come potrei fare?

Se dai all'EditText l'attributo

Codice (XML): [Seleziona]
andorid:inputType="numberDecimal"
ti viene mostrata la tastiera con soli numeri e con solo il .
In questo caso l'utente non ha molta scelta su che carattere usare :)

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #2 il: 12 Marzo 2013, 16:25:25 CET »
0
ma la grafica dell'activity non l'ho fatta con un file xml, ma tramite codice (alla fine..) per intenderci:
quindi come faccio????

Codice (Java): [Seleziona]
LinearLayout dimensionearc = new LinearLayout(this);
                        dimensionearc.setOrientation(LinearLayout.HORIZONTAL);
                        dimensionearc.addView(dimensione);
                        dimensionearc.addView(editdimensione);
                       
                        //larghezza
                        LinearLayout dimpix = new LinearLayout(this);
                        dimpix.setOrientation(LinearLayout.HORIZONTAL);
                        dimpix.addView(dimensioneoggetti);
                        dimpix.addView(editdimensioneoggetti);
                       
                        // layout
                        LinearLayout layout = new LinearLayout(this);
                        layout.setOrientation(LinearLayout.VERTICAL);
                        layout.addView(dimensionearc);
                        layout.addView(dimpix);
                       
                        layout.addView(calcola);
                        layout.addView(risultato);
                       
                        layout.addView(indietro);
                        layout.setBackgroundResource(R.drawable.sfondo);
                         setContentView(layout);


Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #4 il: 12 Marzo 2013, 17:01:53 CET »
0
quindi       InputType.TYPE_CLASS_NUMBER =
 dove dovrei scriverlo?

Post unito: 12 Marzo 2013, 17:07:52 CET
ho usato : final EditText editdimensione = new EditText(this);
      editdimensione.setRawInputType(InputType.TYPE_CLASS_NUMBER);


ma mi esce una tastiera con punti , virgole,@ecc.
« Ultima modifica: 12 Marzo 2013, 17:07:52 CET da manu2424, Reason: Merged DoublePost »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #5 il: 12 Marzo 2013, 17:50:24 CET »
+1
Codice (Java): [Seleziona]
editdimensione.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL)

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #6 il: 12 Marzo 2013, 19:00:07 CET »
0
niente mi esce la tastiera normale.. con il codice di prima mi portava praticamente alla parte di tastiera che si ha cliccando il bottone 123.
ora mi porta solo alla tastiera normale..

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:problema tastiera ed editText
« Risposta #7 il: 13 Marzo 2013, 12:49:40 CET »
+2
Se lo fai da codice devi impostare sia la classe number, sia il flag decimal, combinandoli con l'or:
Codice (Java): [Seleziona]
et.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);Ti spunta la tastiera di cui parli tu, quella che ti viene mostrata quando clicchi 123. Da quella tastiera però potrai digitare solamente i numeri e il punto.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #8 il: 13 Marzo 2013, 14:58:36 CET »
0
si ora funziona :) grazie ad entrambi

però sapete come eseguire un controllo degli editext? praticamente controllare se sono stati inseriti i dati? perchè se lascio gli edittext vuoti e schiaccio il bottone calcola l'applicazione crasha.


Offline brissio

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +6
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #9 il: 13 Marzo 2013, 15:04:02 CET »
0
ricava le stringhe dagli edittext e controlla il lenght.
if(stringa.length()>0)
{
   //do something
}

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #10 il: 13 Marzo 2013, 15:15:44 CET »
0
vorrei che praticamente mi controllasse se è tutto scritto e in caso contrario non far crashare l'applicazione


io lo imposterei cosi.. ma l'applicazione se non inserisco nulla crasha ugualmente..
Codice (Java): [Seleziona]
void clickSubottonecalcola() {
                                double DP, DA, RIS;
                                String temp;
                                temp = editdimensione.getText().toString();
                                DA = Double.valueOf(temp);
                                temp = editdimensioneoggetti.getText().toString();
                                DP = Double.valueOf(temp);
                                if(editdimensione.length()>0)
                                {
                                   if(editdimensioneoggetti.length()>0)
                                    {
                                           RIS = DA/DP;
                                           risultato.setText("Il rapporto risultante in arc/sec è : " + String.format("%,.2f",RIS));
                                            risultato.setBackgroundColor(Color.GRAY);
                                   }
                                   else if(editdimensioneoggetti.length()<0)
                                           risultato.setText("Nessun valore immesso ");
                                   }
                                 
                                 else
                                {
                                        risultato.setText("Nessun valore immesso ");
                                }
                               

Offline brissio

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +6
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #11 il: 13 Marzo 2013, 16:36:40 CET »
0
sono alle prime armi ma penso che il seguente metodo scaturisca un'eccezione con una stringa vuota
Double.valueOf();

metti un breakpoint e lo vedi subito

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #12 il: 13 Marzo 2013, 17:00:00 CET »
0
sto provando in vari modi, ma non succede nulla

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:problema tastiera ed editText
« Risposta #13 il: 13 Marzo 2013, 17:56:50 CET »
0
Codice (Java): [Seleziona]
temp = editdimensione.getText().toString();
if(temp.lenght() > 0)
    DA = Double.valueOf(temp);
else
    // nessun testo inserito
Questo é java base eh..
Postate il LogCat LogCat LogCat LogCat LogCat

Offline manu2424

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: 0
    • Mostra profilo
Re:problema tastiera ed editText
« Risposta #14 il: 13 Marzo 2013, 18:38:53 CET »
0

non mi era mai capitata roba del genere... comunque ora se premo il bottone con editext vuoti l'applicazione non crasha piu.. ma esegue il calcolo male.. o meglio il risultato è sempre 1..

Codice (Java): [Seleziona]
 calcola.setOnClickListener(new OnClickListener() {
                        void clickSubottonecalcola() {
                                double DP, DA , RIS;
                                String temp;
                                temp = editdimensione.getText().toString();
                                temp = editdimensioneoggetti.getText().toString();

                                if(temp.length() >0)
                                       
                                {DA = Double.valueOf(temp);
                                DP = Double.valueOf(temp);
                                RIS = DA/DP;
                                risultato.setText("Il rapporto risultante in arc/sec è : " + String.format("%,.2f",RIS));
                            risultato.setBackgroundColor(Color.GRAY);
                                } else {}
                        }
                       
                        public void onClick(View v) { clickSubottonecalcola();
        }
                 
                 });