-1
をラジオボタンを作成します。次のように私は、アダプタのラジオボタンで作成したカスタムアダプタでRADIOGROUPで
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (vi == null) {
LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vi = li.inflate(R.layout.row, null);
} else {
vi = convertView;
}
final ItemFormRow item = items.get(position);
v = new ViewHolder();
v.answerGroup = (RadioGroup) vi.findViewById(R.id.answerGroup);
v.answerGroup.removeAllViews();
for (int i=0; i<answers.size(); i++) {
RadioButton rb = answers.get(i);
v.answerGroup.addView(rb);
}
return vi;
}
私が活動してアダプタの項目を保存状態のためonSaveInstanceState
を使用します。
onCreate
で、その後の取得
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putParcelableArrayList("test", listItems);
super.onSaveInstanceState(outState);
}
方法。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
listItems = savedInstanceState.getParcelableArrayList("test");
}
....
}
私はデバイス(stop on line: v.answerGroup.addView(rb))
を回転させ
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
私が削除した場合 - onSaveInstanceState
、そのすべてが正常に動作し、例外がスローされません。
状態を保存する必要があります。 修正方法を教えてもらえますか?
この行を削除しましたか? – Chisko