2010-11-19 12 views
14

Ho un EditText per il quale verrà utilizzato per un numero float. Quindi sto cercando di leggere il testo da EditText e inserirlo in una variabile mobile. Ma mi sembra di avere un problema di float del testo. Questa è la linea che ho:Stringa da EditText a float

float Number = ((EditText)findViewById(R.id.edit_float)).getText(); 

Ho provato con Float.parseFloat (stringa) e solo getto generale, ma nulla sembra di farlo. Cosa posso fare qui? Inoltre, c'è un modo per verificare un numero float valido prima di scriverlo su una variabile?

+0

Assicurati di prendere l'abitudine di guardare i tipi di reso. Ovviamente il tentativo di impostare una stringa in un float non funzionerà. Devi convertirlo come mostrato di seguito nella risposta di Ottaviano Damiean. – Thomas

+0

Anche su quell'argomento, sta effettivamente provando a lanciare da un modificabile a un float con questa linea, come 'getText()' restituisce un modificabile. – kcoppock

risposta

36

Prova questo.

EditText edt = (EditText) findViewById(R.id.edit_float); 
float number = Float.valueOf(edt.getText().toString()); 

si utilizza il metodo valueOf() se la classe Float wrapper per convertire una stringa in un float. In questo esempio ottengo l'oggetto Editable di quello EditText con getText() su cui chiamo il metodo toString() per ottenere una stringa da esso.

Aggiornamento: Completamente giusto ragazzi mi dispiace. È tempo di incrementare il mio contatore di pecore.

+2

Provate edt.getText(). ToString() – Falmarri

+2

'getText()' restituisce un 'Modificabile'. Dovrai usare 'edt.getText(). ToString();'. modifica: battuto di 1 minuto : P – kcoppock

+0

Grazie! Ora la mia linea completa è: Float.valueOf (((Testo) findViewById (R.id.edittext_wireframe_width)) .getText(). ToString()); – Espen

-1

NON utilizzare Float.valueOf() se si desidera che il codice funzioni nei paesi che utilizzano la virgola decimale anziché il punto decimale.

+0

Credo che la conversione del numero sia gestita al meglio come per [how-to-parse-numero-stringa-contenente-virgole-in-un-intero-in-java] (https://stackoverflow.com/questions/11973383/how -to-parse-numero-stringa-contenente-virgole-in-un-intero-in-java) – bated

+0

Puoi essere più specifico? – Daniel