Среднее арифметическое в Android приложении
мой мини проект основывается на среднем арифметическом. Это калькулятор оценок. Да, я знаю что их полно, но я делаю это для тренировки. Я сделал дизайн, но проблема в том, что у меня появилась проблема с его технической частью. Суть в том, что пользователь вводит оценки (или может их скопировать, и вставляет в окошко) и внизу показывается средний балл. Также есть выбор целевой оценки. Я сделал так, чтобы пользователь вводил через EditTextNumber, и выводил в TextView. У меня есть скрин, но там я все делал плохо, но все равно не сработало. Помогите пожалуйста.код

package com.example.markcalculator;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText markfield;
TextView ball;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ball = findViewById(R.id.textView3);
markfield = findViewById(R.id.markfield);
}
public void setNumber(View view) {
float kolvo = 0;
float sum = 0;
float number = 0;
float result = 0;
number = Float.parseFloat(markfield.getText().toString());
while (number <= 9) {
kolvo = number / 10;
kolvo = kolvo + 1;
}
int[] Arr = new int[(int) kolvo];
if (number <= 9) {
Arr[(int) kolvo] = (int) (number % 10);
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
if (number <= 9) {
Arr[(int) kolvo] = (int) (number / 10) % 10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if (number <= 9) {
Arr[(int) kolvo] = (int) (number / 100) % 10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if (number <= 9) {
Arr[(int) kolvo] = (int) (number / 1000) % 10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if(number<=9){
Arr[(int) kolvo] = (int) (number/10000)%10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if(number<=9){
Arr[(int) kolvo] = (int) (number/100000)%10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if(number<=9){
Arr[(int) kolvo] = (int) (number/1000000)%10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if(number<=9){
Arr[(int) kolvo] = (int) (number/10000000);
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if(number<=9){
Arr[(int) kolvo] = (int) (number/100000000)%10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
if(number<=9){
Arr[(int) kolvo] = (int) (number/1000000000)%10;
Arr[(int) kolvo] = Arr[(int) kolvo] + 1;
}
}
for(int i = 0;i<kolvo;i++){
sum = sum + Arr[i];
}
result = sum/kolvo;
ball.setText((int) result);
}
}
Ответы (1 шт):
В данный момент ваш метод с обработкой введенных данных нигде не вызывается. Проще всего - добавить кнопку и установить для нее обработчик нажатия, в котором и будет вызываться setNumber.
//В методе onCreate
//...
Button button = findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setNumber(view);
}
});
//...