2016-09-25 59 views
-1

在這個程序中我使用單選按鈕。目前我遇到了按鈕編號2(button2)的一些問題,實際上當它按下時什麼也沒有發生!android中的radiobutton不起作用

當我按下button2應該在「TextView的」 顯示每個單選按鈕的名稱(而button1用來清除選擇單選按鈕)。 任何人都可以請幫助我或給我任何提示?謝謝。

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView;  

public class RadiobuttonActivity extends Activity {  

    Button  button1; 
    Button  button2; 
    TextView textView1; 
    RadioButton r1; 
    RadioButton r2; 
    RadioButton r3;  

    RadioGroup radioGroup1;  

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     button1 = (Button) findViewById(R.id.button1); 
     button2 = (Button) findViewById(R.id.button2); 
     textView1 = (TextView) findViewById(R.id.textView1); 
     radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1); 
     r1 = (RadioButton) findViewById(R.id.r1); 
     r2 = (RadioButton) findViewById(R.id.r2); 
     r3 = (RadioButton) findViewById(R.id.r3);  

     button1.setOnClickListener(new OnClickListener() {  

      @Override 
      public void onClick(View arg0) { 
       radioGroup1.clearCheck(); 
       textView1.setText("AllUnChecked");  
      } 
     });  

     button2.setOnClickListener(new OnClickListener() {  

      @Override 
      public void onClick(View arg0) { 
       int selectedid = radioGroup1.getCheckedRadioButtonId(); 
       switch (selectedid) { 
        case 0: 
         textView1.setText("Red"); 
         break; 
        case 1: 
         textView1.setText("Green"); 
         break; 
        case 2: 
         textView1.setText("Black"); 
         break; 
       } 
      } 
     });  
    } 
} 

這是main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <RadioGroup 
      android:id="@+id/radioGroup1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 



      <RadioButton 
       android:id="@+id/r1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:checked="true" 
       android:text="Red" /> 



      <RadioButton 
       android:id="@+id/r2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Green" /> 



      <RadioButton 
       android:id="@+id/r3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Black" /> 

     </RadioGroup> 


     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="AllUnchecked" /> 


     <Button 
      android:id="@+id/button2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Witch radio button is ckecked?" /> 


     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text View" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    </LinearLayout> 

and this is main.xml file: 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 



     <RadioButton 
      android:id="@+id/r1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      android:text="Red" /> 



     <RadioButton 
      android:id="@+id/r2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Green" /> 



     <RadioButton 
      android:id="@+id/r3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Black" /> 

    </RadioGroup> 


    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="AllUnchecked" /> 


    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Witch radio button is ckecked?" /> 


    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Text View" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
+1

請顯示XML佈局。 –

+0

這裏的代碼沒有任何明顯的錯誤。我建議在你的事件監聽器中設置一個斷點並使用Android Studio中的調試來確定發生了什麼。 –

+0

這是main.xml: –

回答

1

正如this SO post

改用的解釋:

int selectedid = radioGroup1.getCheckedRadioButtonId(); 

使用此:

int selectedid = radioGroup1.indexOfChild(findViewById(radioGroup1.getCheckedRadioButtonId())); 
+0

如果它是正確的,請將其標記爲答案!謝謝。 –

+0

謝謝,我的問題是通過您的指令解決的 –

+0

通過點擊左邊的旗子標記它。謝謝 –