【问题标题】:Android | Radio buttons wont do anything and keep pressed安卓 |单选按钮不会做任何事情并保持按下状态
【发布时间】:2012-12-05 20:08:30
【问题描述】:

我正在尝试做一个货币转换器作业(我是编程新手)

做了一切,但单选按钮被按住并且什么也不做 (不将文本放入 TextView 并且单选按钮锁定在“按下”模式

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_convert);

    mResult = (TextView) findViewById(R.id.result);
    mToConvert = (EditText) findViewById(R.id.toConvert);
    mRadioGroup = (RadioGroup) findViewById(R.id.radioG);
    mDollar = (RadioButton) findViewById(R.id.dollar);
    Meuro = (RadioButton) findViewById(R.id.euro);

    mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
    {
        public void onCheckedChanged(RadioGroup rGroup, int checkedId)
        {

            switch (mRadioGroup.getCheckedRadioButtonId())
            {
            case R.id.dollar:
            Double dollarConvert = Double.valueOf(mToConvert.getText().toString()); //convert the string to int
            double price = dollarConvert * 1.28;
            mDollar.setChecked(true);
            Meuro.setChecked(false);
            String result = mToConvert.getText().toString();
            mResult.setText(result + price);
            break;

            case R.id.euro:
                Double euroConvert = Double.valueOf(mToConvert.getText().toString()); //convert the string to int
                double value = euroConvert * 1.28;
                mDollar.setChecked(false);
                Meuro.setChecked(true);
                String result1 = mToConvert.getText().toString();
                mResult.setText(result1 + value);
                break;

                default:;
            }
        }
    });


}

}

【问题讨论】:

    标签: java android radio-button


    【解决方案1】:

    您需要为 RadioGroup 设置 RadioGroup.setoncheckedchangelistener,以便在检查更改事件触发时执行一些操作。

    mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
    {
        public void onCheckedChanged(RadioGroup rGroup, int checkedId)
        {
                  //do your code here
        }
    });
    

    【讨论】:

    • 我应该在“int check id”中写什么?
    • 没有什么只是在 onCheckedChanged 中复制/粘贴你的 switch 语句
    • @YonatanBalas :只需将 switch (mRadioGroup.getCheckedRadioButtonId()) 更改为 switch (checkedId)
    • 找到了解决方案..单选按钮不在单选组中...但是您的灵魂提示很有帮助,并且需要使其正常工作
    • @YonatanBalas :在转换为 double 之前对 EditText 进行验证以避免应用程序崩溃
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 2017-12-22
    • 2018-07-27
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多