Как узнать завершение текста, редактировать текст - PullRequest
1 голос
/ 16 августа 2011

Я создал EditText. Я могу знать изменение текста с помощью TextChangedListener. Но у меня проблема в том, что я должен показать какое-то сообщение пользователю, когда пользователь закончит писать. для достижения этого я предполагаю, что если пользователь простаивает в течение 500 миллисекунд, это означает, что пользователь завершил запись. Как этого добиться? Есть ли лучший способ узнать завершение текста?

Спасибо

Ответы [ 3 ]

1 голос
/ 16 августа 2011

в TextChangedListener вы можете запустить таймер и перезапускать его каждый раз, когда вызывается метод onTextChangedListener().и установите его время на 500 миллисекунд.и когда таймер заканчивается, вы можете показать свое сообщение.

**Update:**

когда я говорю, что Timer использует CountDownTimer, у которого есть метод onFinish(), который вы можете переопределять и делать свои вещи ...

, а также, если у вас есть несколько представлений, вы можете использовать onFocusChangedListener(), чей метод вызывается при переходе пользователя к следующему TextView, что также является лучшим подходом ..

0 голосов
/ 16 августа 2011

Если вы пытаетесь угадать (а не гарантировать), что пользователь закончил печатать, очевидно, вам придется использовать эвристику, такую ​​как предложенную вами.

В случае, если вы хотите убедиться, вы можетеполагаться на то, что пользователь попытался скрыть клавиатуру.Это можно определить, пройдя через Android: какое событие вызывается при появлении на экране клавиатуры? .

Очевидно, что у вас ничего нет, если у пользователя есть устройство с физической клавиатурой.

HTH,

Акшай

0 голосов
/ 16 августа 2011

EditText должен наследовать onFocusChanged от TextView.

EditText myEditText = (EditText)findViewById(R.id.myEdittext);
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener(){
    @Override
    public void onFocusChange(View v,boolean hasFocus){
        if (!hasFocus) {
            // do some work
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...