我尝试使用此主题在两个活动之间传递数据:
How do I pass data between Activities in Android application?
在您当前的活动中,创建一个新的意图:
Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("new_variable_name","value");
startActivity(i);
然后在新的Activity中,检索这些值:
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("new_variable_name");
}
我的问题是,我没有成功..我有一个游戏包含一个名为币的值,但它是一个共享的参考, 这是sharedpreferences的代码:(oncreate)
prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
coins = prefs.getInt("key2", 0);
现在如何获得我在Shop(Shop.java)上购买的金币以便与他们一起买东西?
答案 0 :(得分:2)
在您的发送Activity
中使用以下内容传递您的硬币值:
i.putExtra("new_variable_name",coins);
请注意,第二个参数是来自SharedPreferences
的int硬币值。
要在接收Activity
上阅读您的硬币值(整数值),您必须将其读作Integer
,而不是String
。
所以,请使用:
private int coinsValue = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null) {
coinsValue = getIntent().getIntExtra("new_variable_name", 0);
}
}
你走了,coinsValue
变量有你的价值。
编辑:要在接收类的任何位置使用coinsValue,请在开头将其声明为字段。
答案 1 :(得分:0)
如我所见,您可以在SharedPreferences中获得硬币数量。如果您这样做,则需要将其保存到您的活动中 -
SharedPreferences.Editor prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE).edit();
prefs.putInt("key2", coins);
prefs.commit();