하나의 RadioGroup에 두 개의 RadioButton, ids @+id/radioButton1
및 @+id/radioButton2
이있는 사용자 정의 구성 요소가 있습니다. 반면에 5 개의 탭이있는 TabActivity가 있습니다. 각 탭에서이 구성 요소는 두 번 이상 사용됩니다.동일한 ID가 복원 될 때 동일한 attrs를 얻는 뷰
오리엔테이션이 변경되고 활동이 다시 생성 될 때 모든 RadioButton에 동일한 attrs가로드되는 문제는 android:text
, android:margin
및 내가 만든 스타일 첨부 attrs를 포함합니다. 동일한 ID를 갖는 모든 CheckBox에서도 발생합니다.
왜 이런 일이 발생했는지 알아 내려고 노력하면서 android가 onRestoreInstanceState에서이를 수행하고 있다고 결론을 내 렸습니다. super 메소드를 호출하는 라인에 주석을 달면 잘 동작합니다.
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// super.onRestoreInstanceState(savedInstanceState);
}
이것이 원래 어떻게 되겠습니까? 또는 이것을 일으킬 수있는 사람은 무엇입니까?
사용자 지정보기를 만들 때 동일한 ID를 가진 동일한보기를 사용하여 동일한 레이아웃을 확장하므로 정상적인 동작이 아닌 것으로 짐작합니다. 따라서 매번 자식마다 다른 ID를 생성하는 새로운 사용자 정의보기를 인스턴스화 할 수 없습니다. 위의 코드 또는 android:configChanges
을 매니페스트에 사용하면 나에게 나쁜 해결책이되는 것 같습니다. 그래서, 어떤 도움을 주셔서 감사합니다.
은. 최악의 부분은, 내 경우에는, 이러한 견해는 잘못된 값을받을 수있다 뷰가 나타내는 상태의 변경이 즉시 발생하여 상태가 손상됩니다. SeekBar를 다른 그룹과 그룹화하는 사용자 정의 뷰에 포함 된 SeekBar에서이 동작이 나타납니다 구성 요소. 사용자 지정보기를 Activity의 여러 위치에서 재사용하고 물론 XML 파일을 다시 사용할 수있는 것은 좋습니다. –