我目前有一個列表視圖,在我的'onCreate'填充我有一個編輯文本,通過傳遞給我的'onTextChanged'方法的約束進行篩選,然後發送到在我的數據庫處理程序類中使用'getChanges'方法,並使用LIKE語句對其進行過濾。在我從編輯文本中刪除了字符串搜索的時候(即它是空白的),我想要重新顯示所有的內容。目前我無法做到這一點,顯示的數據只顯示最後過濾的數據。無法重置過濾後的列表視圖
這是我的篩選:
searchName = (EditText) findViewById(R.id.inputName);
searchedListResults.setTextFilterEnabled(true);
searchName.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
cursorAdapter.getFilter().filter(s.toString());
}
});
getCons = new DBHandler(this, null, null);
cursorAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
getCons.open();
return getCons.getChanges(constraint.toString());
}
});
這是我的數據庫處理程序類的方法,起初我還以爲是因爲我關閉遊標在我「如果」,但這個dosent似乎使一個區別。
public Cursor getChanges(String constraintPassed) {
String [] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_TEL, KEY_EMAIL, KEY_COMMENTS};
Cursor c = null;
if(constraintPassed == "" || constraintPassed.length() == 0)
{
c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, KEY_NAME + " ASC", null);
c.close();
}
else
{
c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + " LIKE'" + constraintPassed + "%'", null, null, null, KEY_NAME + " ASC", null);
}
if(c != null)
{
c.moveToFirst();
return c;
}
return null;
}
}
'constraintPassed ==「」'。 Java 101,字符串比較 – njzk2
事實上,您正在關閉遊標肯定不會幫助 – njzk2