2011-10-18 2 views
0

내 EditText에서 OnTextChange가 발생할 때 내 커서 선택을 수정하여 연락처 목록을 필터링하려고합니다. 문제 : 목록은 그대로 유지됩니다. 즉 필터 당 업데이트되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 그것이 내 SQL 쿼리 (특히 GLOB 부분)의 용의자?WHERE 조건으로 커서 필터링

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

를 사용하여 setListAdapter()를 호출로, Cursor 세 사실 우리가 잘못하고있는 것. 결과를 얻지 못했습니까? 오류 메시지? –

+0

그건 그렇고 : 사용자 입력을 필터링되지 않은 데이터베이스로 이동시키는 것은 * bad *입니다. 바비 테이블을 생각 나니? –

+0

죄송합니다. 언급하지 않으 셨습니다. 목록은 그대로 유지됩니다. 즉, 필터별로 업데이트되지 않습니다. db 입력 팁을 주셔서 감사합니다 :) 나는 숫자와 쿠페 특수 문자 만 입력하도록 제한합니다. 따라서 걱정할 필요가 없습니다. – Phat7

답변

1

Cursor을 새로 생성하는 동안 실제로 아무 것도 수행하지 않습니다. 어쨌든 당신의 CursorAdapter (될 수있는 더 나은 옵션에 API 레벨 11 이상

  • 전화 changeCursor()에있는 경우 당신이 필요하지 않을 경우, 귀하의 CursorAdapter

    • 전화 swapCursor() : 당신도 필요 changeCursor() 그것은 당신이 경우에 많은 도움이 될 새로운 CursorAdapter을 만들 수) 당신을 위해
    • 그것을 닫고 새 어댑터
  • +0

    대단히 감사합니다. 나는이 힌트를 시도 할 것입니다! – Phat7

    +0

    'changeCursor()'가 작동했습니다. 정말 고마워요! – Phat7

    관련 문제