Member 13470701 Ответов: 2

Как я могу использовать массив или ArrayList для расчета edittextviews


Всем Привет,

Я совершенно новичок в кодировании Android и Java. Я пытался понять, как это сделать.

Возьмите 4 поля EditText и вычислите их с помощью массива или ArrayList

Затем выведите расчет в другое поле EditText.

Я использовал double для хранения чисел, так как они будут иметь десятичную дробь.

Вот вам и расклад - 2017-10-17_1457[^]

Что я уже пробовал:

Я использую

двойной grade1;
двойной grade2;
двойной grade3;
двойной класс 4;
двойной итог;


Чтобы хранить его в глобальной области

Я погуглил и даже проверил youtube, но не смог найти ничего, что помогло бы мне. Я имею в виду, что есть некоторые примеры, но я ничего не понял.

2 Ответов

Рейтинг:
2

ThilinaMD

Так что вы можете положить все свои grade переменные в a arrayList и повторите массив, чтобы получить сумму.

double totalGrade=0;
ArrayList<Double> arr =new ArrayList();//create a arraylist
//adding values to the arraylist
arr.add(grade1);
arr.add(grade2);
arr.add(grade3);
arr.add(grade4);

//Iterating  through the array list to get sum
for(Double d:arr){
   totalGrade+=d;
}
System.out.println("Total : "+double totalGrade);


Рейтинг:
0

David Crow

То, что вы пытаетесь сделать, настолько тривиально, что я не знаю, как вы могли бы искать любой отрезок времени вообще и не найти десятки, если не сотни примеров. В любом случае...

В onClick() обработчик для кнопки "рассчитать оценку" вызовите getText() метод для каждого EditText виджет, чтобы получить его значение, а затем вызвать Double.parseDouble() чтобы преобразовать это значение и присвоить его каждому из ваших grade# переменные. Например:

EditText et = (EditText) findViewById(R.id.grade1);
grade1 = Double.parseDouble(et.getText().toString());
Поскольку он доступен только для чтения, вы должны рассмотреть возможность изменения " процента" EditText быть TextView вместо виджета. Затем вы можете присвоить ему сумму, например:
TextView tv = (TextView) findViewById(R.id.pct);
tv.setText(String.valueOf(grade1 + ...));