CursorAdapter
에 연결된 ListView
의 상태를 저장/복원하는 방법은 무엇입니까? 예 :SimpleCursorApdater의 onRestoreInstanceState
저는 Activity
과 3 ListView
인 국가, 지역, 도시가 있습니다.
이들은 3 개의 숫자에 붙어있다. CountryAdapter
, RegionAdapter
, CityAdapter
.
- 는
RegionAdapter
- 의 쿼리 조건을 변경하여 지역 목록의 항목을 필터링 할 국가 목록에서 항목을 선택의 쿼리 조건을 변경하여 도시 목록의 항목을 필터링 할 지역 목록에서 항목을 선택
CityAdapter
의사 코드 :
void countryList_onItemSelected() {
regionsAdapter.getFilter().filter(countryId);
}
void regionList_onItemSelected() {
cityAdapter.getFilter().filter(regionId);
}
Cursor regionAdapter_FilterQueryProvider_runQuery(countryId) {
Cursor cur = dbHelper.getReadableDatabase().
query("Select * from Region where countryId = "+countryId);
return cur;
}
Cursor cityAdapter_FilterQueryProvider_runQuery(regionId) {
Cursor cur = dbHelper.getReadableDatabase().
query("select * from City where regionId = "+regionId);
return cur;
}
onRestoreInstanceState()
가 호출되면, 메서드가 아직 종료되지 않았으므로은 비어 있습니다. 그래서 나는 바로 갈 수
void onRestoreInstanceState(Bundle state) {
...
savedCitySelection = state.getInt("citySelectedItemPosition")
cityListView.setSelection(savedCitySelection); // <= NOOO! the cityListView is empty
}
질문 : 가 어떻게 저장/나는 Loader
을 사용하는 것이 좋습니다 것 onSaveInstanceState()
및 onRestoreInstanceState().