пример кода onFocusChange?

У меня есть форма с 2 полями, где можно войти или в течение многих месяцев или в течение многих лет. Как я устанавливаю форму так, чтобы, если Вы входите в годах, месяцы edittext поле были автоматически вычислены и введены свое собственное поле. Аналогично, я хочу, чтобы годы были вычислены, если Вы вошли в месяцах

Кто-либо может дать мне пример кода для этого?

12
задан Rich 15 May 2010 в 22:28
поделиться

1 ответ

У вас есть два способа сделать это:

  1. Выполнить посимвольную обработку одного поля для вычисления другого поля

    Для этого вы можете использовать addTextChangedListener с наблюдателем текста, где вы изменяете метод onTextChanged для обработки данные.

     // из editHandle = (EditText) findViewById (R.id. << ваш EditText >>); 
     
    editHandle.addTextChangedListener (redoWatcher); 
     {{1 }} // слушатель 
    private TextWatcher redoWatcher = new TextWatcher () {
     
     
    public void beforeTextChanged (CharSequence s, int start, int count, {{1 }} int после) {
    } 
     
     @Override 
    public void onTextChanged (CharSequence s, int start, int before, 
    int count) {
    recalculate (); 
    } 
     
     @Override 
    public void afterTextChanged (Editable s) {
     {{1} }} 
     
    }; 
     

Теперь вы можете написать метод пересчета для обработки данных.

2. Другой метод - вычислить данные, когда пользователь переключает фокус на другое поле.

Здесь вам нужно использовать onFocusChangeListener:

<Your EditView>.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        recalculate();
    }
});

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

19
ответ дан 2 December 2019 в 18:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: