1

안녕하십니까, radiogroup 옆에 textview를 추가하고 싶습니다. 서비스 응답에 따라 xml을 사용하지 않고 radiogroup에 레이블을 추가해야합니다. 우리는 점점 radiGroup보기에있는 LinearLayout을 추가 할 때 최대 길이 라디오에 따라 어떤 상황에서 는radiogroup에 textview를 동적으로 추가하는 방법

는 [Here we are showing checkboxes,but based on response it will changes to radiogroup with in radiobutton]

final RadioGroup rg = new RadioGroup(this); //create the RadioGroup 
      rg.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
      rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL 
      rg.setGravity(Gravity.CENTER); 
      final RadioButton[] rb = new RadioButton[items_list.size()]; 
      final CheckBox[] cb = new CheckBox[items_list.size()]; 

for (int i = 0; i < items_list.size(); i++) { 

       LinearLayout ll_orientaion = new LinearLayout(this); 
       ll_orientaion.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 2.0f)); 
       ll_orientaion.setOrientation(LinearLayout.HORIZONTAL); 
       ll_orientaion.setBackgroundColor(getResources().getColor(R.color.white)); 
       ll_orientaion.setWeightSum(2); 
       ll_orientaion.setGravity(Gravity.CENTER); 


       if (max == 1) { 

        rb[i] = new RadioButton(this); 
        rb[i].setText(pd.getName()); 
        rb[i].setGravity(Gravity.CENTER); 
        ll_orientaion.addView(rb[i]); 

        if (pd.getSelected_status().equals("true")) { 
         rb[i].setChecked(true); 

        } 

        hashMap_rdlist.put(rb[i].getText().toString(), rdd); 

        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
         @Override 
         public void onCheckedChanged(RadioGroup group, int checkedId) { 

          ProductOptions rd_getlist = new ProductOptions(); 

          int checkedRadioButtonId = rg.getCheckedRadioButtonId(); 
          RadioButton radioButton = (RadioButton) findViewById(checkedRadioButtonId); 
          // Toast.makeText(ProductOptionsActivity.this, radioButton.getText(), Toast.LENGTH_SHORT).show(); 

          String rd_name = (String) radioButton.getText(); 

        }); 
       } else { 

        cb[i] = new CheckBox(this); 
        cb[i].setButtonTintList(ColorStateList.valueOf(getColor(R.color.colorPrimary))); 
        cb[i].setText(pd.getName()); 
        cb[i].setGravity(Gravity.CENTER); 
        ll_orientaion.addView(cb[i]); 


        } 

        final int finalI = i; 

        cb[i].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
         @Override 
         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

          ProductOptions rd_getlist = new ProductOptions(); 
          String check_name = (String) cb[finalI].getText(); 

          if (isChecked) { 

           check_count++; 


          } else { 
           check_count--; 

          } 
         } 
        }); 
       } 
       // Log.d("checklist",""+productoptions_skuId); 

       TextView tv = new TextView(this); 
       LinearLayout.LayoutParams tv1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 
       tv.setLayoutParams(tv1); 
       tv1.weight = 2; 
       tv1.gravity = Gravity.CENTER; 
       tv.setText(pd.getSalePrice()); 
       tv.setTextSize(14); 
       tv.setGravity(Gravity.END); 
       if (pd.getSalePrice().equals("0.0")) { 
        tv.setVisibility(View.INVISIBLE); 
       } 
       ll_orientaion.addView(tv); 
       rg.addView(ll_orientaion); 
      } 

가장 큰 문제는, 완벽한 만의 RadioButton 행동이다

여기

코드 아래에

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {}

GUI하십시오, 즉 작동하지 우리 사전 감사합니다!

+0

'RadioGroup'은 그 자신의 자식이거나'RadioButton'의 하위 클래스 인 경우에만 작동합니다. 'LinearLayout'을'RadioGroup' 자식으로 추가하는 것 같습니다. – Shaishav

답변

0

CheckedTextView를 사용하여 목록보기에 대한 사용자 지정 어댑터를 만듭니다.

+0

확인. 그러나 라디오 버튼이 올 때 문제가 발생합니다 –

+0

당신에게 어떤 문제가 있습니까? –

+0

문제는 체크 버튼에 멀티 옵션이 있음을 의미합니다. 라디오 버튼에는 단일 옵션이 있습니다. –

관련 문제