CheckBox启用

时间:2015-03-18 18:29:31

标签: android checkbox

我有一个问题,我不知道如何解决它。我想制作一个基本的begginer计算器应用程序。我想只有一个复选框可以检查,但我无法弄清楚,stil可以检查所有。如何可以我将字符串从edittext转换为doubl?.App尚未完成。 抱歉英语。

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

}

2 个答案:

答案 0 :(得分:0)

你必须设置一个监听器。

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.

            }
        });

对每个复选框执行相同操作,禁用或启用所需内容。

要将String转换为Double,您可以这样做:

Double value1 = Double.valueOf(number_1.getText().toString());

确保它不是空值,并且可以强制转换为double。 你可以使用try / catch。

答案 1 :(得分:0)

您可以使用RadioButton和RadioGroup代替Checkbox。

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

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

<强>更新

要将String转换为Double,您可以这样做:

// 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);