Получить номер из EditText - PullRequest
       0

Получить номер из EditText

1 голос
/ 06 февраля 2012

Я хочу получить float из EditText getText() метода

Вот что я сделал:

  • В layout.xml
<EditText
    android:id="@+id/et_Amount"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="number" 
    android:hint="Units of fuel you purchased">

    <requestFocus />
</EditText>
  • В моей деятельности
public void setAmount() {
  EditText tx = (EditText) findViewById(R.id.et_Amount);
  float amount = Float.valueOf(tx.getText().toString()); 
}

К сожалению, возникает исключение NumberFormatException.Есть идеи?

Ответы [ 3 ]

2 голосов
/ 13 октября 2015

Для вещественных чисел (с плавающей запятой или двойных) используйте android:inputType="numberDecimal".Подробнее о типах ввода .

<EditText
       ...
       android:inputType="numberDecimal" />

Чтобы получить значение, используйте что-то вроде:

EditText amount_text = (EditText) rootView.findViewById(R.id.et_Amount);
double amount = Double.parseDouble(amount_text.getText().toString());
2 голосов
/ 06 февраля 2012

У меня такая же проблема, когда в тексте редактирования ничего нет.Попробуйте сначала проверить.

Если для редактирования текста есть значения android: text = "" или "123rt" или "45 *" или "asdh" и т. Д. Я столкнулся с той же проблемой исключения.

РЕДАКТИРОВАТЬ Это только мое предложение

android:inputType="number"

допускает только целые значения, например, 20, 30 и т. Д., А не значения с плавающей точкой, например, 20,002, 30,345 и т. Д.

Использование

android:numeric="integer|decimal"

, чтобы разрешить значения с плавающей точкой в ​​тексте редактирования пользователем

1 голос
/ 06 февраля 2012

Исключение формата чисел, которое вы получаете, связано с тем, что возвращается нулевое значение (при условии, что значение пустое). Он не анализирует 0 с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...