所以我一直在使用getIntent方法将我的原始int值(设置为10)发送到第二个类。
Intent webClick = new Intent(this, WebsearchIAP.class);
webClick.putExtra("cred", cred);
startActivity(webClick);
然后,我通过从中减去1来更新变量。
Intent get = getIntent();
int cred = get.getIntExtra("cred", 10);
public void buyClick(View view) {
sCredits.setText(cred - 1);
}
然后,我想通过这样做将它发回给我的MainActivity。
public void backClick(View view) {
Intent close = new Intent(this, MainActivity.class);
close.putExtra("cred", cred);
startActivity(close);
}
回到我的MainActivity,这就是我想要做的。
@Override
public void onResume() {
super.onResume();
Intent close = getIntent();
int cred = get.getIntExtra("cred", [VALUE OF CRED IN PREVIOUS ACTIVITY]);
}
我的问题是getIntent方法需要" cred"的数值,如果我只使用该方法一次就没什么大不了的,但我想每次这个应用程序恢复时都使用它主屏幕,因此调用onResume。那么,我如何设置我的应用程序以取得" cred"在以前的活动中,无论它是什么,在一种方法中?
答案 0 :(得分:0)
也许你可以使用SharedPreferences
。它通常用于存储应用程序首选项,并在应用程序中共享。
首先,在您的活动中获取您的SharedPreferences:
private SharedPreferences sp = getSharedPreferences("foo", MODE_PRIVATE);
然后设置并输出如下值:
int cred = sp.getInt("CRED", 10); // Put this statement in onResume
sp.edit().putInt("CRED", cred).apply();
您可以获取SharedPferences here的官方文档。
答案 1 :(得分:0)
有一种最好的方法可以做到这一点。首先使用public static void shuffle(List<?> list, Random rnd) {
for (int i = list.size(); i > 1; i--)
swap(list, i - 1, rnd.nextInt(i));
}
代替startActivityForResult()
向第二个活动发送意向。然后从第二个Activity使用startActivity()
将值发送回第一个Activity。在第一个活动中覆盖setResult()
以获取更新的值。
例如:
onActivityResult()