I am new in android development..I am creating RadioButton programmatically but I found this error :
Wrong state class, expecting View State but received class android.widget.CompoundButton$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/0x4. Make sure other views do not use the same id.
My code is:: DynamicFormCreation.java
public RadioGroup createRadioButton(String[] option, Context context, int parentId) {
final RadioButton[] rb = new RadioButton[5];
RadioGroup rg = new RadioGroup(context);
rg.setPadding(5, 5, 0, 5);
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
final float width = metrics.widthPixels;
rg.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
rg.setMinimumHeight(UtilityClass.intToDpi(65, context));
rg.setOrientation(RadioGroup.HORIZONTAL);
for (int i = 0; i < 5; i++) {
if (option[i] != null && option[i].trim().length() > 0) {
rb[i] = new RadioButton(context);
rg.addView(rb[i]);
rb[i].setTextColor(Color.BLACK);
rb[i].setText(option[i]);
}
}
return rg;
}
Call that function ::
RadioGroup relgroup = createRadioButton(option, context, parentId);
rel.addView(relgroup);
parentId++;
Call this class in activity ::
DynamicFormCreation runTimeUiLibs;
view = runTimeUiLibs.getRuntimeView(field, lastCoreFieldId, textviewid, edit, "0");
if (view != null) {
LinearLayout fieldAndPrivacyLayout = UtilityClass
.getLinearLayoutHorizontal(MainActivity.this);
view.setLayoutParams(layoutParamsBasic);
view.setId(Integer.parseInt(field.editProfileFieldId));
fieldAndPrivacyLayout.addView(view);
editPageLayout.addView(fieldAndPrivacyLayout);
}