我创建了一个EditText。我可以使用TextChangedListener了解文本更改。但是我有一个问题,我必须在用户完成写入时向用户显示一些消息。实现这一点我假设如果用户空闲500毫秒,这意味着用户已完成写入。怎么做到这一点?有没有更好的方法来了解文本完成情况?
由于
答案 0 :(得分:1)
TextChangedListener
中,您可以启动计时器并在每次调用onTextChangedListener()
方法时重新启动它。并将其时间设置为500milliSeconds。当计时器结束时,您可以显示您的消息。
**Update:**
当我说Timer使用CountDownTimer时,它有onFinish()
方法你可以覆盖并做你的东西......
如果你有多个视图,那么你可以使用onFocusChangedListener(),一旦用户跳转到下一个TextView就会调用其方法,这也是更好的方法..
答案 1 :(得分:0)
EditText应该从TextView继承onFocusChanged
。
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
}
}
});
答案 2 :(得分:0)
如果您试图猜测(而不是确保)用户已完成输入,显然您将不得不使用启发式方法,例如您建议的方式。
如果您想确保,您可以依赖用户试图隐藏键盘的事实。这可以通过Android: which event fires when on screen keyboard appears?来确定。
显然,如果用户的设备带有物理键盘,则无法使用任何内容。
HTH,
阿克沙伊