В классе 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;
}
И что было бы лучшим подходом в моем случае? Чтобы иметь метод myResults в другом классе и иметь возможность вызывать сумму в текстовом представлении MainActivity?
я запутался в вашем вопросе, вы хотите получить сумму в своем MainActivity
, которая вычисляется в каком-то другом Activity
, всегда помните, что одновременно отображается только одно действие (работает), если ваше действие результата вызывается из MainActivity
, вам нужно закрыть его после того, как ваша логика завершится и вернет результат обратно в MainActivity
, вы можете показать результат в MainActivity
Обычно вам не следует обновлять представления другого действия. Если вам нужно просто что-то рассчитать, создайте статический метод
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());
вы хотите установить текст в TextView в MainActivity из какого-либо другого действия