2011-08-16 19 views
1

私はEditTextを作成しました。 TextChangedListenerを使ってテキストの変更を知ることができます。しかし、私は、ユーザーが書き込みを終えたときに、ユーザーに何らかのメッセージを表示しなければならないという問題があります。これを達成するために、ユーザーが500ミリ秒間アイドル状態であれば、ユーザーが書き込みを終了したことを意味します。これを達成する方法は?テキストの完成を知る良い方法はありますか?あなたはタイマーを開始し、それをonTextChangedListener()メソッドが呼び出されるたびに再起動することができtextcompletionの編集方法、edittext

答えて

1

TextChangedListener

感謝。その時間を500milli秒に設定します。タイマーが終了したらメッセージを表示することができます。

**Update:** 

私はタイマーは、あなたがオーバーライドして自分のものを行うことができますonFinish()方法を持っているCountDownTimerを使用すると言う...

ともあなたが複数のビューを持っているならば、あなたはメソッドですonFocusChangedListenerを()、使用することができます一度ユーザーと呼ばれる次のTextViewにジャンプするより良いアプローチです。

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 
     } 
    } 
}); 
0

は、ユーザーが入力して行われていることを推測する(というよりも確実に)しようとしている場合は、明らかにあなたは、そのようなあなたが提案したものとヒューリスティックを使用する必要があります。

あなたが確実にしたい場合は、ユーザーがキーボードを隠そうとしたという事実に頼ることができます。これはAndroid: which event fires when on screen keyboard appears?を通過することで判断できます。

明らかに、ユーザーが物理的なキーボードを備えたデバイスを持っている場合、あなたは何も持っていません。

HTH、

Akshay

関連する問題