我有一个问题,我不知道如何解决它。我想制作一个基本的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);
}
}
}
答案 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);