首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CheckBox启用

CheckBox启用
EN

Stack Overflow用户
提问于 2015-03-19 02:29:31
回答 2查看 44关注 0票数 0

我有一个问题,我不知道如何解决它,我想做一个基本的乞求计算器应用程序。我希望只有一个复选框是可复选的,但我想不出来,仍然可以检查所有的.And如何才能将字符串从编辑文本转换为doubl?.App尚未完成。对不起,我说英语。

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.top_fragment);

     double result ;

    EditText number_1 = (EditText)findViewById(R.id.number_1);
    EditText number_2 = (EditText)findViewById(R.id.number_2);
    CheckBox add_box = (CheckBox)findViewById(R.id.add_box);
    CheckBox subtract_box = (CheckBox)findViewById(R.id.subtract_box);
    CheckBox divide_box = (CheckBox)findViewById(R.id.divide_box);
    CheckBox product_box = (CheckBox)findViewById(R.id.product_box);
    final Button button = (Button)findViewById(R.id.button);

   number_1.getText().toString();
   number_2.getText().toString();

    if(add_box.isChecked())
    {
        subtract_box.setEnabled(false);
        divide_box.setEnabled(false);
        product_box.setEnabled(false);
    }else if(subtract_box.isChecked())
    {
        product_box.setEnabled(false);
        divide_box.setEnabled(false);
        add_box.setEnabled(false);
    }else if(divide_box.isChecked())
    {
        subtract_box.setEnabled(false);
        product_box.setEnabled(false);
        add_box.setEnabled(false);
    }else if(product_box.isChecked())
    {
        subtract_box.setEnabled(false);
        divide_box.setEnabled(false);
        add_box.setEnabled(false);
    }
}

}

EN

回答 2

Stack Overflow用户

发布于 2015-03-19 02:38:11

你必须设置一个监听器。

代码语言:javascript
复制
add_box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
            Disable or enable what you want here. it will be called when add_box is checked or unchecked.

            }
        });

对每个复选框执行相同的操作,禁用或启用您想要的内容。

要将字符串转换为双精度,您可以这样做:

代码语言:javascript
复制
Double value1 = Double.valueOf(number_1.getText().toString());

确保它不是空值,并且可以转换为双精度值。您可以使用try / catch。

票数 0
EN

Stack Overflow用户

发布于 2015-03-19 02:51:46

您可以使用RadioButton和RadioGroup代替复选框。

单选按钮允许用户从集合中选择一个选项。对于互斥的可选集,您应该使用单选按钮。

RadioButton官方文档:http://developer.android.com/guide/topics/ui/controls/radiobutton.html

更新:

要将字符串转换为双精度,您可以这样做:

代码语言:javascript
复制
// obtain a reference
EditText number_1 = (EditText)findViewById(R.id.number_1);
// obtain the string value
String number_1String = number_1.getText().toString()
// convert the string value to double value
Double number_1Double = Double.valueOf(number_1String);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29129949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档