我有两项活动:让我们说 A 和 B
A 有一个按钮,可以使用intent
概念打开 B 。
通过 B 我使用SQLite
概念在数据库中保存数据。
A 是主要活动,textView
显示某个值!
代码:
使用SharedPreferences
存储int值并在MainActivity中显示 A
c=sp.getInt(Salaryflag, 0);
str=Integer.toString(c);
tv.setText(str);
现在我使用一些算法在数据库中的一个行中计算sum()
并将其值存储在 int 变量中
现在在onResume
我正在使用此概念来更改 A textView
的值! :
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
ItemsDataBase xyx=new ItemsDataBase(this);
xyx.open();
int lola;
lola=xyx.getSum();
xyx.close();
c=c-lola;
str=Integer.toString(c);
tv.setText(str);
}
现在我想要的是当我从第二次Acitvity B 回到 A 时,它应该立即显示更改。
但实际上它显示了一些垃圾值,当我在关闭后重新启动应用程序时,它会在textView
如何删除此逻辑错误?
垃圾值:
关闭应用并重新打开后:
答案 0 :(得分:0)
你应该写c = sp.getInt(Salaryflag,0);在你的简历上,因为你将c-lola分配给c。
当您重新启动活动时,行c = sp.getInt(Salaryflag,0)首先被执行,因此它会显示出来。
当你从B到A时,A的onResume()会被调用,所以你必须在onResume()中初始化/赋值变量c。