2012-12-27 4 views
0

동적으로 RadioButtons을 만들고 Radiogroup에 추가했습니다. 나중에 RadiogroupLinearLayout에 추가됩니다. 내 문제는 모든 장치에서 잘 작동하지만 에뮬레이터입니다. 에뮬레이터에서 모든 라디오 버튼을 선택할 수 있습니다.에뮬레이터에서 제대로 작동하지 않는 라디오 그룹

단서가 있습니까?

샘플 XML 등의 샘플 코드 Radiobuttons을 만드는

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:background="@drawable/sam_bg" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:id="@+id/tvReportTitle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/mediumblue" 
     android:textColor="@color/white" 
     android:visibility="gone" 
     /> 
    <LinearLayout 
     android:id="@+id/llGtResponseContainer" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

    </LinearLayout> 

</LinearLayout> 

아래와

public LinearLayout getLayout(ViewGroup vg) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    view = (LinearLayout) inflater.inflate(R.layout.single_type, vg, false); 
    TextView tv = (TextView)view.findViewById(R.id.txt_single); 
    if(isCompulsory) { 
     question = "• " + question; 
    } 
    tv.setText(question); 
    radioView = (RadioGroup) view.findViewById(R.id.single_rg); 
    for(String i : responseArray) { 
     RadioButton rb = new RadioButton(context); 
     // rb.setText(i); 
     String str = i; 
     if(str.trim().split("\\|").length > 1) { 
      rb.setText((str.trim().split("\\|"))[0]); 
      rb.setTag((str.trim().split("\\|"))[1]); 
     } 
     else { 
      rb.setText(str); 
      rb.setTag(str); 
     } 
     radioView.addView(rb); 
    } 
    return view; 
} 

Radiogroup 다음 나중에 다시 ScrollView 내에 포함 LinearLayout에 첨가 방법 상기에서 반환 된 반환 View .

+0

더 나은 이해를 위해 XML 코드를 게시하는 것이 좋습니다. – swiftBoy

+0

일부 샘플 코드로 내 질문을 편집했습니다. 클래스에는 getlayout()이라는 메서드가 있으며이 메서드는 인스턴스 배열에 대해 호출됩니다. – Avinazz

+0

힌트를 보내 주시면 감사하겠습니다. 에뮬레이터가 실제로 이상하게 행동 할 수 있는지 궁금합니다. – Avinazz

답변

1

setId() 메서드를 사용하여 RadioButton에 "id"를 제공합니다. 아직도 이유는 에뮬레이터와 실제 장치에서 다른 행동을 알 수

rgroup = (RadioGroup)findViewById(R.id.rg); 
     final RadioButton[] rb = new RadioButton[5]; 
     for (int i = 0; i < 5; i++) { 
      rb[i]=new RadioButton(this); 
      rb[i].setText("rdo"+i); 
      rb[i].setId(i); 
      rgroup.addView(rb[i]); 


     } 

대해 참조 Android RadioButtons misbehaving on Emulator only

에서 : 다음은 샘플 코드입니다.

관련 문제