Среднее арифметическое в 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 шт):

Автор решения: vlados_spasi

В данный момент ваш метод с обработкой введенных данных нигде не вызывается. Проще всего - добавить кнопку и установить для нее обработчик нажатия, в котором и будет вызываться setNumber.

//В методе onCreate
//...
Button button = findViewById(R.id.buttonId);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setNumber(view);
            }
        });
//...
→ Ссылка