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

#java #android #textview

#java #Android #textview

Вопрос:

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

MainActivity TextView:

 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;
        }
  

Комментарии:

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

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

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

Ответ №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());