我在this教程中找到了一个searchfilter的代码,并希望在我的GridView
项目中使用它,我用它来显示数据库表Accounts
的内容和想出了这个(教程的其他部分代码在我的活动中进入了适当的位置,但实际的searchfilter的要点落入了GridView
):
GridView的
public void TestGrid() {
dbHelper = new DatabaseHelper(this);
try {
Cursor a = dbHelper.getAllAccounts();
startManagingCursor(a);
String[] from = new String[]{DatabaseHelper.colName, DatabaseHelper.colAmount, DatabaseHelper.colPeriodClass, DatabaseHelper.colStatClass};
int[] to = new int[]{R.id.colName, R.id.colAmount, R.id.colPeriod, R.id.colStat};
grid.setAdapter(new SimpleCursorAdapter(this, R.layout.accrow, a, from, to));
grid.setTextFilterEnabled(true);
setupSearchView();
} catch (Exception ex) {
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setMessage(ex.toString());
b.show();
}
}
其他作品
private void setupSearchView() {
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
grid.clearTextFilter();
} else {
grid.setFilterText(newText.toString());
}
return true;
}
public boolean onQueryTextSubmit(String query) {
return false;
}
问题
所以一切似乎都有效,除了实际的搜索过滤器(我不能说我有很多希望在第一时间起作用)。我输入我正在寻找的东西,它什么也没做。我显然错过了所有这一切的重要部分。任何人都可以对我的错误有所了解吗?