Нельзя применить оператор - к "double", "android.widget.EditText"

Я новичок в мире Android:) Я прочитал учебник по Android и пытаюсь его использовать. Я хочу попытаться вычислить почечную функцию, я использовал EditText с NumberDecimal Type, чтобы получить три значения: age, weight, creat, а затем я использовал Radiogroup, чтобы выбрать значение, которое зависит от пола, но когда я хочу попробовать чтобы получить результат, я получаю ошибку

"Оператор" - "нельзя применить к" двойному "," 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 ответа

Это здесь:

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

не компилируется, потому что возраст является объектом класса EditText,

получить текст (это будет строка), вызывающая метод age.getText(), а затем разобрать, чтобы удвоить, чтобы вы могли выполнять математические операции с ним

Пример: (сначала подтвердите, что возраст является допустимым значением)

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

Используйте Double.valueOf (age.getText ().toString ()) и убедитесь, что у вас есть числовое значение в этом текстовом поле

Вам необходимо преобразовать объекты EditText в double (или int, float, long и т. Д.), Чтобы использовать стандартные математические операторы.

Другие вопросы по тегам