我的应用程序中的listview过滤器出现问题。在KartyListFragment.java我宣布:Android中的ListAdapter过滤器
ListAdapter adapter = new SimpleCursorAdapter(ctx,
R.layout.karty_list_item, db.getKarty(), from, to, 0);
现在StartActivity.java在onCreate方法我的EditText和TextWatcher。
EditText searchInput = (EditText) findViewById(R.id.search_edit_text);
watcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
KartyListFragment.this.adapter.getFilter().filter(s); //THIS ROW IS WRONG
//it doesn't know getFilter()
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) { }
@Override
public void afterTextChanged(Editable s) { }
};
searchInput.addTextChangedListener(watcher);
in OnTextChanged方法我需要调用适配器的getFilter()方法,但它写入错误。我读了几个教程。有使用ArrayAdapters和我使用列表(光标)。你有什么主意吗?
很好,谢谢。但是现在在OnTextChanged方法(KartyListFragment.this。下划线)中出现错误“范围内没有可以访问类型的封闭实例” – 2013-02-23 16:07:12
请确保您的'adapter'是实例变量而不是本地变量。 – ebarrenechea 2013-02-23 16:14:52