我的應用程序中的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