Intereting Posts
В чем смысл android.intent.action.MAIN? Каковы новые возможности библиотеки поддержки Android Design и как использовать ее Snackbar? Значение яркости экрана в Android Cocos2d-xv 2.0.4 FATAL EXCEPTION GLThread при запуске на эмуляторе Android NullPointerException: попытка вызвать виртуальный метод 'int java.util.ArrayList.size ()' для ссылки на нулевой объект Какие языки программирования можно использовать на Android Dalvik? Мои файлы Android XML не могут найти темы ActionBarSherlock Биллинг в приложении: «Элементы запроса, доступные для покупки», возвращает 0 пунктов Настроил список предложений для автозаполнения текста Ошибка JavaScript в JavaScript Javascript и URL-адрес Phonegap Есть ли способ отключить аппаратное ускорение только для Android 4.0.3? Как запретить Android Studio 2.0 делать полную чистую сборку после удаления приложения с устройства? Android Studio – невозможно открыть файл PNG Почему ContextThemeWrapper теперь ограничен группой поддержки? Передача cookie в браузер через Intent

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

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

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

Как добиться этого .. Я пробовал на addTextChangedListener () с TextWatcher ().

Может ли кто-нибудь предложить мне, как это сделать …

Спасибо в adv.

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

Вы выбрали правильный подход. Вы должны расширить класс с помощью 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; } } });