Добавить целое число из другого класса в textView

В классе MainActivity у меня есть TextView, и я хочу, чтобы он был заполнен целое число из другого класса. Целое число является результатом некоторых вычислений в базе данных. Как я могу установить текст TextView с целым числом «сумма» из другого класса? Спасибо!

Текстовое представление MainActivity:

valFormula.setText( here I need to pass the sum Integer);

И это класс, в котором я вычисляю значение суммы:

public class CalculateItems extends AppCompatActivity {
        MyDBHandler myDb;
        String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
        int sum;

    public void myResult() {
                List<Integer> items = new ArrayList<>();
                myDb = new MyDBHandler(this);
                Cursor cursor = myDb.getItemsToday();
                if (cursor !=null) {
                        while (cursor.moveToNext()) {
                                int timeWhenAdded = cursor.getInt(1);
                                int timePassed = Integer.parseInt(timeStamp) - timeWhenAdded;
                                int price = total - (int) ((percentageToDecrease / 100) * discount);
                                items.add(price);
                        }
                }
                //This is the variable that I want to have it displayed in the textView:
                sum = 0;
                for (int i : items)
                        sum += i;
        }

вы хотите установить текст в TextView в MainActivity из какого-либо другого действия

Muhammad Muzammil Sharif 08.04.2019 21:03

И что было бы лучшим подходом в моем случае? Чтобы иметь метод myResults в другом классе и иметь возможность вызывать сумму в текстовом представлении MainActivity?

groogie13 08.04.2019 21:16

я запутался в вашем вопросе, вы хотите получить сумму в своем MainActivity, которая вычисляется в каком-то другом Activity, всегда помните, что одновременно отображается только одно действие (работает), если ваше действие результата вызывается из MainActivity, вам нужно закрыть его после того, как ваша логика завершится и вернет результат обратно в MainActivity, вы можете показать результат в MainActivity

Muhammad Muzammil Sharif 08.04.2019 21:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обычно вам не следует обновлять представления другого действия. Если вам нужно просто что-то рассчитать, создайте статический метод

public class CalculateItems {
    public static int myResult() {
        int sum = 0;
        List<Integer> items = new ArrayList<>();
        MyDBHandler myDb = new MyDBHandler(this);
        Cursor cursor = myDb.getItemsToday();
        if (cursor !=null) {
            while (cursor.moveToNext()) {
                int timeWhenAdded = cursor.getInt(1);
                int timePassed = Integer.parseInt(timeStamp) - timeWhenAdded;
                int price = total - (int) ((percentageToDecrease / 100) * discount);
                items.add(price);
            }
        }
        for (int i : items)
            sum += i;
        return sum;
    }
}

и вызовите его из основного действия, когда вам это нужно

valFormula.setText(CalculateItems.myResult());

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