2013-05-01 49 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; 
)