Как использовать событие EditText onTextChanged, когда я нажимаю номер?

Привет, у EditText есть EditText с «text = 0.00». когда я нажимаю номер 3, он должен быть как 0,03 и второй раз, когда я нажимаю номер 5, текст должен быть 0,35. И 35,0, 35,09, как это. Первоначальное значение параметра EditText имеет значение 0.00.

Все это делается с помощью одного и того же EditText .

Как мне это достичь? Я попробовал addTextChangedListener() с TextWatcher() .

Вы выбрали правильный подход. Вы должны расширить class с помощью TextWatcher и переопределить afterTextChanged() , beforeTextChanged() , onTextChanged() .

Вы должны написать свою желаемую логику в afterTextChanged() для достижения необходимой вам функциональности.

Вы также можете попробовать следующее:

 EditText searchTo = (EditText)findViewById(R.id.medittext); searchTo.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { doSomething(); } }); 

Здесь я написал нечто похожее на то, что вам нужно:

  inputBoxNumberEt.setText(". "); inputBoxNumberEt.setSelection(inputBoxNumberEt.getText().length()); inputBoxNumberEt.addTextChangedListener(new TextWatcher() { boolean ignoreChange = false; @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (!ignoreChange) { String string = s.toString(); string = string.replace(".", ""); string = string.replace(" ", ""); if (string.length() == 0) string = ". "; else if (string.length() == 1) string = ". " + string; else if (string.length() == 2) string = "." + string; else if (string.length() > 2) string = string.substring(0, string.length() - 2) + "." + string.substring(string.length() - 2, string.length()); ignoreChange = true; inputBoxNumberEt.setText(string); inputBoxNumberEt.setSelection(inputBoxNumberEt.getText().length()); ignoreChange = false; } } }); 
  • Индивидуальное проектирование EditText
  • Измените символ маски пароля EditText на звездочку (*)
  • Выберите весь текст внутри EditText, когда он получит фокус
  • Как узнать, когда EditText теряет фокус?
  • Поместите курсор в конец текста в EditText
  • как изменить цвет фокуса EditText в Android
  • Остановить ScrollView от автоматической прокрутки до EditText
  • Значок ошибки EditText и отображаемый пароль
  • Есть ли способ определить минимальное и максимальное значение для EditText в Android?
  • Android AutoCompleteTextView с чипами
  • Android: изменение размера только частей изображения с помощью мягкой клавиатуры на экране
  • Interesting Posts

    DOS пакетный цикл FOR с FIND.exe удаляет пустые строки?

    c #: Как использовать перечисление для хранения строковых констант?

    Автоматический вход в систему и блокировка

    Emacs: отображение с использованием шестнадцатеричных escape-последовательностей

    Несколько streamов пользовательского интерфейса – Winforms

    пароль и подтверждение подтверждения поля пароля угловые2 реактивные формы

    Почему мы не можем инициализировать элементы внутри структуры?

    Почему я заблокировал перетаскивание окон через границы экрана (несколько мониторов) в Windows 10?

    Что такое сбалансированные группы балансировки?

    ChromeDriver – отключить расширения режима разработки для Selenium WebDriver

    Перенаправление на домашнюю страницу по умолчанию в сети Wi-Fi

    Переменная объекта или с не заданной переменной блока (Ошибка 91)

    Пункт меню Android 4.3 showAsAction = “always” игнорируется

    Вызывать метод непосредственно перед истечением сеанса

    Как не сериализовать свойство __type на объектах JSON

    Давайте будем гением компьютера.