我正在尝试通过在我的EditText中发生OnTextChange时修改我的光标选择来过滤联系人列表。问题是:列表保持不变,即根据过滤器不会更新。我究竟做错了什么?我怀疑这是我的SQL查询(特别是GLOB部分)?
digitsText.addTextChangedListener(new TextWatcher(){
public void onTextChanged(CharSequence s, int start, int before, int count){
filterText = digitsText.getText().toString();
WHERE_CONDITION = ContactsContract.Data.DATA1 + " GLOB '*" + filterText + "*'";
cursor = getContentResolver().query(URI, PROJECTION, WHERE_CONDITION, null, SORT_ORDER);
startManagingCursor(cursor);
setListAdapter(adapter);
}
});
答案 0 :(得分:1)
当您生成新的Cursor
时,您实际上并未对其执行任何操作。你需要:
swapCursor()
{/ 1}} CursorAdapter
上致电changeCursor()
(如果您不需要旧的CursorAdapter
,这可能是更好的选择,因为Cursor
会为您关闭它)changeCursor()
并调用CursorAdapter