/*package com.example.mylauncher; import android.text.Editable; import android.text.TextWatcher; public class SearchTextWatcher implements TextWatcher { private MainActivity activity; public SearchTextWatcher(MainActivity activity) { this.activity = activity; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) { activity.filterList(s.toString().toLowerCase()); } @Override public void afterTextChanged(Editable s) {} }*/ package com.example.mylauncher; import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; import android.widget.EditText; public class SearchTextWatcher implements TextWatcher { private MainActivity activity; public SearchTextWatcher(MainActivity activity) { this.activity = activity; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) {} @Override public void afterTextChanged(Editable s) { // Move filtering here to ensure it happens after the text is fully updated activity.filterList(s.toString().toLowerCase()); } }