Я хочу добавить значения полей editText в несколько макетов, чтобы опубликовать их в поле editText в макете, называемом результаты - PullRequest
0 голосов
/ 04 декабря 2011

Вот моя формула:

(R.id.dch135-(R.id.drg59*.0752)-(R.id.drg6*.061)-(R.id.drg11*.0412)-(R.id.dplenum*.0802)-(R.id.s2way*4.5)-(R.id.s3way*6.9)-(R.id.sbal35*4.5)-(R.id.sunbal70*8.8)-(R.id.s4way*8.8)-(R.id.s8way*13)-(R.id.sdc6th*3.3)-(R.id.sdc9th*2.7)-(R.id.sdc12th*2)-(R.id.sdc6tp*6)-(R.id.sdc9tp*9)-(R.id.sdc12tp*12)-(R.id.samp*14.5)

У меня есть поля editText на нескольких макетах. Я хочу запустить приведенную выше формулу для них и получить результат для отображения в поле editText в другом макете с именем results.

Я попытался использовать getText, но все, что я получаю, это "Не удается вызвать setText (String) для примитива типа int".

Любая помощь будет отличной! Спасибо

1 Ответ

0 голосов
/ 05 декабря 2011

Кажется, что когда вы говорите (R.id.drg59*.0752), вы имеете в виду «получить значение из EditText с идентификатором drg59 и умножить, если на 0,0752. Однако, что это означает в Java, это« умножить значение R.id.drg59 (целочисленное значение, определенное в R.java, а не то, что в данный момент находится в вашем тексте редактирования) на 0,0752 ".

Вам необходимо проанализировать каждое из значений EditText для числа (предположительно, с плавающей точкой)), а затем умножьте его на 0,0752. Например:

 EditText drg59Text = (EditText) findViewById(R.id.drg59);
 float drg59Value = Float.parseFloat(drg59Text.getText());
 float result = drg59Value * 0.0752;

и т. д. и т. д.

Кроме того, при установке текстового значения вам необходимо преобразовать значение в строку,Самый простой способ - добавить значение в пустую строку:

 EditText resultText = ...
 resultText.setText("" + result); //where "result" is a float value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...