我有一个问题,我不知道如何解决它,我想做一个基本的乞求计算器应用程序。我希望只有一个复选框是可复选的,但我想不出来,仍然可以检查所有的.And如何才能将字符串从编辑文本转换为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);
}
}}
发布于 2015-03-19 02:38:11
你必须设置一个监听器。
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.
}
});对每个复选框执行相同的操作,禁用或启用您想要的内容。
要将字符串转换为双精度,您可以这样做:
Double value1 = Double.valueOf(number_1.getText().toString());确保它不是空值,并且可以转换为双精度值。您可以使用try / catch。
发布于 2015-03-19 02:51:46
您可以使用RadioButton和RadioGroup代替复选框。
单选按钮允许用户从集合中选择一个选项。对于互斥的可选集,您应该使用单选按钮。
RadioButton官方文档:http://developer.android.com/guide/topics/ui/controls/radiobutton.html
更新:
要将字符串转换为双精度,您可以这样做:
// 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);https://stackoverflow.com/questions/29129949
复制相似问题