2016-12-25 77 views

回答

2

首先,我想提出一些進一步閱讀,以確保你完全理解這個代碼的輸出。

  1. Android - RadioGroup control
  2. Radio Group - Android Developers
  3. Radio Button - Android Developers

你需要創建佈局文件中的RadioGroup中和單選按鈕部件。

<RadioGroup 
     android:layout_width="fill_parent" 
     android:layout_height="90dp" 
     android:layout_below="@+id/imageView" 
     android:layout_marginTop="58dp" 
     android:weightSum="1" 
     android:id="@+id/radioGroup" 
     android:layout_alignLeft="@+id/textView2" 
     android:layout_alignStart="@+id/textView2" 
     android:layout_alignRight="@+id/textView3" 
     android:layout_alignEnd="@+id/textView3"> 

     <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="55dp" 
     android:text="Male" 
     android:id="@+id/radioButton" 
     android:layout_gravity="center_horizontal" 
     android:checked="false" 
     android:textSize="25dp" /> 

     <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Female" 
     android:id="@+id/radioButton2" 
     android:layout_gravity="center_horizontal" 
     android:checked="false" 
     android:textSize="25dp" 
     android:layout_weight="0.13" /> 
    </RadioGroup> 

<Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button" 
     android:layout_gravity="center_horizontal" 
     android:layout_below="@+id/radioGroup" 
     android:layout_centerHorizontal="true" /> 

記下android:checked屬性,如果設置爲true,RadioButton將被默認選中,反之亦然。

然後,您需要在您的活動中初始化RadioGroup,然後查看其中哪些已被選中。

public class MainActivity extends Activity { 
    private RadioGroup radioSexGroup; 
    private RadioButton radioSexButton; 
    private Button btnDisplay; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     radioSexGroup=(RadioGroup)findViewById(R.id.radioGroup); 

     btnDisplay=(Button)findViewById(R.id.button); 

     btnDisplay.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int selectedId=radioSexGroup.getCheckedRadioButtonId(); 
      radioSexButton=(RadioButton)findViewById(selectedId); 
      Toast.makeText(MainActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show(); 
     } 
     }); 
    } 
} 

:上述代碼具有總積分到TutorialsPoint,如圖上面提供的第一鏈路。現在

,如果您要檢查哪個按鈕被選中,並執行一些邏輯,如果是,你就可以使用switch聲明與selectedId您從RadioGroup獲得使用語法int selectedid = radioSexGroup.getSelectedButtonId();

所以看其中邏輯是,新片段將是這個樣子:

 int selectedId=radioSexGroup.getCheckedRadioButtonId(); 
     radioSexButton=(RadioButton)findViewById(selectedId); 
      switch(selectedId) { 
       case R.id.radioButton: 
         //perform logic is first button selected 
         break; 

       case R.id.radiobutton2: 
         //perform logic is second button selected 
         break; 
      } 

希望這有助於你RadioGroupRadioButton對象的理解。

您也可以直接將偵聽器應用於RadioGroup以獲取RadioButtoncheckedid,該按鈕在沒有按鈕點擊的情況下被選中,如上所示。

radioSexGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 
    { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) 
     { 
      switch (checkedId) { 
       case R.id.radiobutton: 
        //method for first radio button goes here 
        break; 
       case R.id.radiobutton2: 
        //method for second radio button goes here 
        break; 
      } 
     } 
    });