2017-07-28 10 views
0

データベースからデータを取得しています。値に基づいて、ラジオボタンを動的に作成しています。そのラジオボタンにラジオグループを追加しようとすると、ラジオグループが設定されていません。 Bcozというのは、すぐにたくさんのラジオボタンを選択できます。ラジオボタンがラジオボタンに設定されていません。

attr_layout[i].addView(radioButton, lp); 
attr_layout[i]` is the value for buttons which im getting. The values 
are Small, Medium and Large. 

以下は、RadioButtonの完全なコードです。

RadioGroup radioGroup = new RadioGroup(mMain); 
LinearLayout[] attr_layout = new LinearLayout[optionsList.size()]; 
        attr_layout[i] = new LinearLayout(mMain); 
        attr_layout[i].setOrientation(LinearLayout.HORIZONTAL); 

        int attr_size = attributes.size(); 

         for (int k = 0; k < attr_size; k++) 
         { 
           String price = String.format(Locale.ENGLISH, AppConstants.DECIMAL_POINTS, Float.parseFloat(attributes.get(k).getAttr_price())); 
           String name_price = attributes.get(k).getAttr_name() 
             +" ("+ mMain.getString(R.string.currency_code) 
             +" "+ price +")"; 

           if(!multiSelect.equals("1")) // This multiselect value 1 and 0 is coming from database. 
           //Based on these value, app will display checkbox or radio button 
           { 
            final RadioButton radioButton = new RadioButton(mMain); 
            radioButton.setText(name_price); 
            radioButton.setId(i + 6); 
            radioButton.setTextSize(12); 
            radioButton.setTag(attributes.get(k)); 
            radioButton.setGravity(Gravity.START | Gravity.CENTER_VERTICAL); 
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) 
            { 
             radioButton.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); 
            } 
            setTextFont(radioButton, "Museo_Slab.otf"); 

            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
              LinearLayout.LayoutParams.MATCH_PARENT, 
              LinearLayout.LayoutParams.WRAP_CONTENT, 
              1f); 
            //lp.setMargins(10, 10, 0, 10); // llp.setMargins(left, top, right, bottom); 


            RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); 
            radioGroup.setLayoutParams(params); 
            attr_layout[i].addView(radioButton, lp);`   

答えて

0

RadioButtonをラジオグループに追加し、レイアウトに追加します。

代わり

attr_layout[i].addView(radioButton, lp);` 
+0

私はこの1つを試してみましょう – Jacky

+0

上記のコードで試してみました。今、私は2つのボタンを選択することができます。私は3つのラジオボタンを持っています。 2つのラジオボタンを選択できます。なぜそんなに? – Jacky

+0

画像を確認できますか? http://imgur.com/a/HBWwr – Jacky

0

ラジオグループでは、ラジオグループのすべてのボタンをチェックしようとしている場合、そのラジオグループに属しているボタンを1つだけチェックすることができます。

0

radioGroup.addView(radioButton, lp);代わりにattr_layout[i].addView(radioButton, lp);のコード

radioGroup.addView(radioButton, lp); 
attr_layout[i].addView(radioGroup) 

を使用し、すなわちforループの外側に、全てradioButton Sを添加した後attr_layout[i].addView(radioGroup);を置きます。

+0

私はあなたがここで言及したことをしました。今、私は3つのうち2つのボタンを選択することができます。 1つだけを選択させる必要があります。 – Jacky

+0

同じRadioGroup内に、互いに排他的にするすべてのボタンを配置するかどうかを確認します。おそらく、異なるグループの中にボタンがあり、同時に選択することができます。 – Nithin

+0

はい私はしました..ここで完全なコードを確認することができます。 https://pastebin.com/vVQ87MkR – Jacky

関連する問題