我正在尝试从列表对象中执行一个RadioGroup动态,我读了很多关于我的错误,但解决方案对我没有帮助,我希望你可以。
我的结构.xml
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/app_bar"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/green_tataki"
android:padding="5dp"
app:popupTheme="@style/AppTheme.PopupOverlay">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/big_box_user"
android:layout_above="@+id/buttons"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@color/white">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!--SOMETHING-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/identity"
android:orientation="horizontal"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:id="@+id/gentle_view">
<!--HERE GOES THE RADIO BUTTON-->
</LinearLayout>
<!--SOMETHING-->
</RelativeLayout>
</ScrollView>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
我的活动,填写广播组:
LinearLayout gentleView = (LinearLayout) findViewById(R.id.gentle_view);
final RadioGroup rg = new RadioGroup(this);
RadioButton rb = new RadioButton[userInfo.getUserSex().size()];
rg.setOrientation(RadioGroup.HORIZONTAL);
for(int i=0; i<userInfo.getUserSex().size()-1; i++)
{
rb[i] = new RadioButton(this);
rb[i].setText(userInfo.getUserSex().get(i).getName());
rb[i].setId(userInfo.getUserSex().get(i).getId());
((ViewGroup) gentleView.getParent()).removeView(gentleView);
rg.addView(rb[i]);
}
gentleView.addView(rg);
如您所见,我将removeView放入for循环中。我尝试将无线电组创建到xml中,错误是一样的:
java.lang.IllegalStateException: The specified child already has a parent.
You must call removeView() on the child's parent first.
真的,我不太了解错误,我试着用其他答案解决,但它对我不起作用。
======================================== EDIT ====== =============================== 我的错误是我正在处理RadioButton就像一个数组。所以,错误消失了,但现在,RadioGroup只显示第一个项目。
这是代码
for(int i=0; i<userInfo.getUserSex().size()-1; i++)
{
rb = new RadioButton(this);
rb.setText(userInfo.getUserSex().get(i).getName());
rb.setId(userInfo.getUserSex().get(i).getId());
rg.addView(rb);
gentleView.addView(rg);
}