정적 뷰와 동적으로 생성 된 뷰가 혼합 된 액티비티로 Android 앱을 만들고 있습니다. 액티비티에는 XML 파일에 포함 된 UI 요소와 모델 클래스의 내용을 기반으로 동적으로 생성되는 UI 요소가 포함됩니다. (마찬가지로, 내 모델 클래스에 배열이 있고 배열의 모든 요소에 대해 EditText가 생성되고 다른 배열의 모든 요소를 포함하는 Spinner가 생성됩니다)동적으로 생성 된 UI에서 인스턴스 상태 저장 및 복원?
일반적인 저장 방법은 무엇입니까? 동적으로 생성 된 UI 요소가 관련되어있을 때 응용 프로그램의 상태를 복원 할 수 있습니까? 언제 어느 UI 요소가 존재하는지 항상 알 수는 없기 때문에! 현재 바인딩 코드는 장치 방향이 바뀌면 데이터베이스에서 데이터를 간단히 다시로드하여 사용자가 변경 한 내용을 잃어 버립니다.
저는 Google/SO에서이 문제에 대해 잘 살펴 봤는데이 문제와 관련이 없습니다.
덕분에 모든
편집 : 앞으로이 건너 오는 사람들을위한 , 나는 약간 수정 Yakiv의 접근 방식의 버전이 함께 상처 않았다
for (int i = 0; i < views.size(); i++) {
View currentView = views.get(i);
if (currentView instanceof CheckBox) {
outState.putBoolean("VIEW"+i, (((CheckBox) currentView).isChecked()));
} else if (currentView instanceof EditText) {
outState.putString("VIEW"+i, ((EditText) currentView).getText().toString());
} else if (currentView instanceof Spinner) {
//.....etc. etc.
}
}
다시 한 번 감사드립니다 Yakiv을 멋진 아이디어.
검색 결과가 잘못되었습니다. 답변은 다음과 같습니다. http://stackoverflow.com/questions/151777/saving-activity-state-in-android. –
귀하의 링크를 가져 주셔서 감사합니다. 그러나 Yakiv의 의견에 대한 답변으로, 귀하가 가지고있는 UI 요소를 알고 번들에 쉽게 저장할 수있는 가장 간단한 경우입니다. 동적으로 생성 된 UI 요소를 알 수 없습니다. 활동에 5 개의 편집 문구가 있거나 50 개가있을 수 있으므로이 값을 번들에 추가하기가 어렵습니다. – user2459186