2013-05-01 50 views
0

我ahve在android中做了一個簡單的radioButton演示。我已經把一個名爲「男性」和「女性」的兩個單選按鈕的radiogroup ...和一個按鈕。我想要的是當一個他們的壓制與該特定單選按鈕應該在toast.I名曾嘗試下面那不是工作:無線電組不工作在android

Activity.java

package com.example.radiobuttondemo; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.Toast; 

public class MainActivity extends Activity { 
RadioButton rd1,rd2; 
Button b; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    rd1=(RadioButton)findViewById(R.id.radio0); 
    rd2=(RadioButton)findViewById(R.id.radio1); 
    b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      if(rd1.isChecked()){ 
       Toast.makeText(getApplicationContext(), "male", 0).show(); 
      } 
      else{ 
       Toast.makeText(getApplicationContext(), "Female", 0).show(); 
      } 


     } 
    }); 
    } 



} 
+0

什麼是確切的問題?當你調試它輸入onClick()? – codeMagic 2013-05-01 16:15:55

回答

1

您忘記初始化您的Button b。

所以當你在做b.setOnClickListener時,你的程序會拋出一個NullPointerException並關閉你的應用程序。

+0

ohk ... k ... bro ... m begginer ..so犯了愚蠢的錯誤...謝謝你幫助我... bro ..! – jigar 2013-05-01 16:29:00

0

就個人而言,我一直使用RadioGroup中我單選按鈕。如果你沒有使用它,當你檢查另一個單選按鈕時,它怎麼知道取消選中一個單選按鈕?

http://www.mkyong.com/android/android-radio-buttons-example/

現在,如果你正在處理一個正常的複選框,你的方法就可以了,我想。一個普通的複選框不需要知道它的兄弟姐妹。

0

您必須將您的按鈕與您的MainActivity類中的Button對象(即您命名爲b)綁定。 有在B動作監聽器,但B沒有綁定...

+0

只需添加:'b =(Button)findViewById(R.id.button1);' – 2013-05-01 16:19:24

+0

tnx ..!它的工作 – jigar 2013-05-01 16:30:11

0

做對單選按鈕組本身的檢查:

switch (radioGroup.getCheckedRadioButtonId()) { 
      case rd1: 
        Toast.makeText(getApplicationContext(), "male", 0).show(); 
        break; 
      case rd2: 
        Toast.makeText(getApplicationContext(), "Female", 0).show(); 
        break; 
)