【问题标题】:Radio group not working in android无线电组无法在 android 中工作
【发布时间】:2013-04-25 16:05:04
【问题描述】:

我在 android 中做了一个简单的 radioButton 演示。其中我放置了一个带有两个名为“男”和“女”的单选按钮的单选按钮...和一个按钮。我想要的是当其中一个按下相关名称时到那个特定的单选按钮应该是烤面包。我试过如下那不起作用:

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();
            }


        }
    });
    }



}

【问题讨论】:

  • 具体的问题是什么?调试时是否进入onClick()?

标签: android radio-button radio-group


【解决方案1】:

你忘记初始化你的Button b。

因此,当您执行 b.setOnClickListener 时,您的程序会抛出 NullPointerException 并关闭您的应用程序。

【讨论】:

  • ohk...k...bro...m begginer ..so 犯了愚蠢的错误...感谢您帮助我...兄弟..!
【解决方案2】:

您必须将按钮与 MainActivity 类中的 Button 对象(您命名为 b)绑定。 b上有一个动作监听器,但是b没有绑定...

【讨论】:

  • 只需添加:b=(Button)findViewById(R.id.button1);
【解决方案3】:

就我个人而言,我一直使用 RadioGroup 作为我的单选按钮。如果你不使用它,当你选中另一个单选按钮时,它怎么知道取消选中另一个单选按钮?

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

现在,如果您正在处理一个普通的复选框,我想您的方法会很好。一个普通的复选框不需要知道它的兄弟姐妹。

【讨论】:

    【解决方案4】:

    检查 RadioButton 组本身:

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

    【讨论】:

      猜你喜欢
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      相关资源
      最近更新 更多