2016-07-01 4 views
0

ListViewの値をフィルタリングするのにEditTextを使用します。EditText changedListenerが呼び出されない

これまでのところ動作しますが、問題が1つあります。まず、私のコード:

final EditText mEditText = (EditText) this.findViewById(R.id.filterEditText); 
mEditText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } 

    @Override 
    public void afterTextChanged(Editable editable) { 
     String mFilter = editable.toString(); 
     mListViewUpdater.setFilter(mFilter); 
     Log.d("Editable", editable.toString()); 
    } 
} 

私は何かを入力するときに呼び出されると、フィルタが適用され、作品れるafterTextChanged()方法。

EditTextのすべてを削除すると、キーボードを閉じるまですべての値が再び表示されるまで、ListViewは最後にフィルタリングされた状態のままです。

EditTextが空でもキーボードが折りたたまれていない場合、すべての値を表示する方法はありますか?

よろしくお願いいたします。

+0

[Android EditText delete(backspace)キーイベント]の複製があります。(http://stackoverflow.com/questions/4886858/android-edittext-deletebackspace-key-event) – nicobatu

答えて

-1

afterTextChanged()メソッドの代わりにonTextChanged()メソッドにコードをすべて入れてください。

+0

これはonTextChangedメソッドで行いました。 –

+0

このソリューションは実際に私がしたいように働いた。 – cptKopernikus

関連する問題