0
我在對話框中有一個ListView和一個EditText來過濾我的CustomerCodes列表,我已經實現了我的過濾器查詢與TextWatcher和onTextChanged()我已經改變了我的舊光標更改光標導致異常
Cursor FilteredCPCodeList = CustomerDBAdapter.instance.CursorFilteredCPCode(s.toString()); //Retrieve Filtered CustomerCodeList
CpListadapter.changeCursor(FilteredCPCodeList);
名單過濾可以完美兼容上面的代碼,但是當我在一個ListItem點擊它OnItemClickListener其使用舊的光標會導致異常通知:
01-05 10:33:01.577: E/AndroidRuntime(5380): android.database.StaleDataException: Attempting to access a closed CursorWindow.Most probable cause: cursor is deactivated prior to calling this method.
我知道,改變光標將關閉我的老光標,但我不知道如何在我的舊c上使用StopManagingCursor ursor(或其他soloution)來解決這個Issue.i've試過onTextChanged(此代碼),但它不工作,要麼
Cursor OldCursor = CpListadapter.getCursor();
stopManagingCursor(OldCursor);
任何幫助,將不勝感激,謝謝
謝謝oleg用swapcursor替換更改光標解決了我的問題。 –
是的,與'changeCursor()'不同,'swapCursor()'不會關閉原始文件。請注意,除非您使用兼容性庫中的'android.support.v4.widget.SimpleCursorAdapter',否則它需要API 11。 –