#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());