2012-11-26 5 views
2

에서/선택 해제를 선택하지 마십시오,하지만 동적으로 생성 할 때 라디오 버튼에 다른을 선택하면 선택 해제하지 않습니다RadioButtons를 제대로 동적으로 생성을 radioGroup

enter image description here

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup1); 

    RadioButton radioButtonView = new RadioButton(this); 
    radioButtonView.setText("RadioButton"); 
    radioGroup.addView(radioButtonView); 

    RadioButton radioButtonView2 = new RadioButton(this); 
    radioButtonView2.setText("RadioButton2"); 
    radioGroup.addView(radioButtonView2); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 
} 

그리고 레이아웃 파일 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<RadioGroup 
    android:id="@+id/radioGroup1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" > 
</RadioGroup> 
</RelativeLayout> 
여기

코드입니다

답변

5

보십시오 :

int idRadio = <some number>; 
radioButtonView.setId(idRadio++); 
radioButtonView2.setId(idRadio++); 

가 서로 다른 ID를 갖게되면, 그것은 작동합니다. ID가 기존 그래픽 요소와 충돌하지 않고 0이 아닌지 확인하십시오 ("gen"폴더로 이동하여 다른 요소 ID에 대해서는 R.java를보십시오).

+0

감사합니다. 왜 지구상에 그런 식으로 설정되어 있습니까 ?? – Jonathan

+0

OS가 자산을 추적하고 그 자산에 속한 사람이 유용합니다. 또한 사용자가 어떤 객체를 선택했는지 정확하게 찾고자 할 때 일반적으로 반환 된 ID를 쿼리하는 것이 모든 라디오 버튼을 통해 확인하고 어느 것이 확인되었는지를 찾는 것이 더 쉽습니다. 또한 이것이 답변이라면 대답 옆에있는 체크 표시를 클릭하여 표시하십시오. :-) –

+0

유용하고 확실하지만 적절한 UI 기능을위한 전제 조건이 있습니까? 어쨌든, 고마워 고마워. – Jonathan

관련 문제