2015-09-02 31 views
1

我试图将radiobutton动态添加到radiogroup中,但我无法将单选按钮添加到它。 (它在radiogroup里面没有显示单选按钮) 该代码显示没有错误。Android - 将RadioButton动态添加到RadioGroup

自从今天上午以来,我一直在寻找解决方案。 非常感谢您的帮助!

private void createCustomDialog(){ 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

     final Dialog dialog = new Dialog(this); 
     dialog.setTitle("Choose Device"); 
     dialog.setContentView(R.layout.dialog_choose_device); 

     LinearLayout parent = (LinearLayout)dialog.findViewById(R.id.linearLayoutCD); 

     LinearLayout li = new LinearLayout(this); 
     li.setLayoutParams(params); 
     li.setOrientation(LinearLayout.VERTICAL); 



     RadioGroup rg = (RadioGroup)dialog.findViewById(R.id.rgCD); 
     RadioButton[] rbArray = new RadioButton[bdList.size()]; 

     for(int i = 0; i < bdList.size(); i++){ 
      rbArray[i] = new RadioButton(this); 
      rbArray[i].setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); 
      rbArray[i].setWidth(ViewGroup.LayoutParams.MATCH_PARENT); 
      rbArray[i].setText(bdList.get(i).getName()); 
      rbArray[i].setId(i); 
      Log.d(LOG, "" + bdList.get(i).getName()); 
      li.addView(rbArray[i]); 

     } 

     Button btnOK = new Button(this); 


     btnOK.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View view){ 

       dialog.dismiss(); 
      } 
     }); 

    ((ViewGroup) dialog.findViewById(R.id.rgCD)).addView(li); 

    dialog.show(); 
} 

我的XML文件对话框

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent" 
android:id="@+id/linearLayoutCD" 
android:orientation="vertical"> 
<RadioGroup 
    android:id="@+id/rgCD" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:orientation="vertical"> 


</RadioGroup> 

<Button 
    android:id="@+id/btnOK" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="OK" 
    /> 


</LinearLayout> 

回答

1

试试这个:

RadioGroup rg = (RadioGroup) findViewById(R.id.RadioGroup); 

RadioButton radioButton = new RadioButton(this); 
radioButton.setText("radio text"); 
radioButton.setId(1234);//set radiobutton id and store it somewhere 
RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); 
rg.addView(radioButton, params); 
+0

它的作品!非常感谢:D –

相关问题