Adding a radio group to a user dialog

I am trying to use dynamic switches for a user dialog but cannot add it to my own dialog

final RadioButton[] rb = new RadioButton[5]; RadioGroup rg = new RadioGroup(this); rg.setOrientation(RadioGroup.VERTICAL); // layout params to use when adding each radio button LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams( RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); LinearLayout ll2 = (LinearLayout) findViewById(R.id.linearMain); // add 5 radio buttons to the group for (int i = 0; i < 5; i++){ rb[i] = new RadioButton(this); String label = "item set" + i; rb[i].setText(label); rb[i].setId(i); rg.addView(rb[i],layoutParams); } ll2.addView(rg); -------------------------------------------------------------------- Context context=LocationActivity.this; dialog=new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.custom_dialog); ---------------------------------------------------------------------- Linearlayout2 is defined in custom_dialog.xml file. I must be doing something wrong but not able to figure it out. Other widgets are getting displayed except radiogroup buttons. 

Any pointer to this problem can be added.

Thanks! Swz

custom_dialog as below:

It has 2 viewview widgets and a radio group is announced. I can add the same layout successfully to the activity screen, but not to the user dialog.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/linlayoutBase" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" > <LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_marginRight="5dip" android:text="Longitute: " android:textSize="20dip" > </TextView> <TextView android:id="@+id/TextView04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="unknown" android:textSize="20dip" > </TextView> </LinearLayout> <LinearLayout android:id="@+id/linearMain" android:layout_width="match_parent" android:layout_height="wrap_content"> <RadioGroup android:id="@+id/radiogroup" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" > </RadioGroup> </LinearLayout> </LinearLayout> 
+4
source share
1 answer

Looking at the published XML, try the following:

 Context context=LocationActivity.this; dialog=new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); View view = LayoutInflater.fromContext(context).inflate(R.layout.custom_dialog, null, false); RadioGroup rg = (RadioGroup) view.findViewById(R.id.radiogroup); RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams( RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); // add 5 radio buttons to the group RadioButton rb; for (int i = 0; i < 5; i++){ rb = new RadioButton(context); rb.setText("item set" + i); rb.setId(i); rg.addView(rb, layoutParams); } dialog.setContentView(view); 

I did not see how you changed your dialogue. So I inflated the layout, added RadioButtons, and then passed the completed layout to the dialog .

Also, since linearMain has only one child, you can remove this LinearLayout and just use radioGroup .

+6
source

Source: https://habr.com/ru/post/1447324/


All Articles