无法应用运算符 - 对于' double' android.widget.EditText'

时间:2016-06-24 19:01:50

标签: java android operator-keyword

我是android世界的新人:) 我已经阅读了Android教程,并尝试使用它。 我想尝试计算肾功能, 我使用了一些带有NumberDecimal Type的EditText来获取三个值: 年龄,体重,创造力 然后我使用Radiogroup选择一个取决于性别的值, 但是当我想尝试得到结果的时候 我收到了错误

  

"运营商' - '不能应用于' double' android.widget.EditText'

我不明白错误的原因。

public class CG extends AppCompatActivity {
    private RadioGroup ChoixSexe = null;
    private double ChoixValeur=0;
    private double Calcul=0;
    private double age=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cg);
        EditText poids=(EditText)findViewById(R.id.poids);
        EditText age=(EditText)findViewById(R.id.age);
        EditText créat=(EditText)findViewById(R.id.créat);
       ChoixSexe =(RadioGroup)findViewById(R.id.sexe);
        ChoixSexe.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
            public void onCheckedChanged(RadioGroup group, int LeChoix){
                switch (LeChoix)
                {
                    case R.id.homme:
                        ChoixValeur =1.23;
                        break;
                    case R.id.femme:
                        ChoixValeur=1.04;
                        break;
                }
            }
        });
        Calcul=(140.0-age)/créat*poids*ChoixValeur;
    }
}

对我的英语道歉,这有点近似。

3 个答案:

答案 0 :(得分:0)

您需要将EditText对象转换为double(或int,float,long等)以使用标准数学运算符。

答案 1 :(得分:0)

这里:

 Calcul=(140.0-age)/créat*poids*ChoixValeur;

未编译,因为age是类EditText的对象,

获取文本(将是一个sstring)调用方法age.getText(),然后解析,使其成为Double,这样你就可以用它做数学运算

示例:(首先验证年龄是否为有效输入)

double d = Double.parseDouble(age.getText().toString());
calcul = (140.0 - d) / creat * poids * ChoixValeur;

答案 2 :(得分:0)

使用Double.valueOf(age.getText()。toString())并确保在该文本字段中有rnvmerical值