venerdì 19 ottobre 2012

NumberFormatException da conversione in Numero di un campo EditText

asd


Stavo cercando di convertire i dati ripresi da una EditText in un numero a virgola mobile utilizzando il seguente comando


st = Double.parseDouble(txtportata.getText().toString());



Immancabilmente pero' il programma mi generava una eccezione del tipo

NumberFormatException

relativa al fatto che la stringa non poteva essere convertita in un numero (per esempio per la presenza di spazi o comunque di caratteri differenti da quelli numerici).
Per forzare l'utente ad introdurre solo valori numerici ho modificato la proprieta' InputType a NumberDecimale della EditText.
In questo modo pero' non sembrava possibile inserire il valore del punto decimale.

Impiegando l'emulatore si ha la tasteria numerica sotto riportata e cliccando sui caratteri speciali appare la barra in cui sono comprese il punto, la virgola ed altri


Purtroppo pero' questi caratteri non vengono accettati dalla EditText

Per far apparire il punto decimale si deve arrivare alla tastiera sotto riportata ed effettuare doppio clic sul pulsante che racchiude la virgola ed il punto



A questo punto non vengono piu' generate eccezioni ed la conversione funziona correttamente