@+id/radioButton1
2 つの RadioButton、idおよびを持つ 1 つの RadioGroup を持つカスタム コンポーネントがあり@+id/radioButton2
ます。一方、5 つのタブを持つ TabActivity があります。各タブで、このコンポーネントは複数回使用されています。
ここに問題があります。向きが変わり、アクティビティが再作成されると、RadioButton のすべてが同じ属性で読み込まれます。これにはandroid:text
、android:margin
作成したスタイル設定された属性も含まれます。同じ ID を持つすべての CheckBox でも発生します。
なぜこれが起こっているのかを突き止めるのにしばらく時間を費やし、Android が onRestoreInstanceState でそれを行っていると結論付けました。スーパーメソッドを呼び出す行にコメントを付けると、正常に動作します。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// super.onRestoreInstanceState(savedInstanceState);
}
これが本来あるべき姿ですか?または、これを引き起こすために何ができますか?
カスタムビューが作成されると、同じIDを持つ同じビューで同じレイアウトを膨らませるため、これは通常の動作ではないと推測しています。そのため、毎回子に異なる ID を生成する新しいカスタム ビューをインスタンス化することはできません。上記またはandroid:configChanges
マニフェストでコードを使用することは、私にとって悪い回避策のようです。だから、どんな助けも大歓迎です。