【发布时间】:2015-04-10 02:26:18
【问题描述】:
如何在 Android 应用程序的 Activity 之间传递数据?
【问题讨论】:
标签: android
如何在 Android 应用程序的 Activity 之间传递数据?
【问题讨论】:
标签: android
在您当前的活动中,创建一个意图
Intent i = new Intent(getApplicationContext(), ActivityB.class);
i.putExtra(key, value);
startActivity(i);
然后在另一个活动中,检索这些值。
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String value = extras.getString(key);
}
【讨论】:
使用全局类:
public class GlobalClass extends Application
{
private float vitamin_a;
public float getVitaminA() {
return vitamin_a;
}
public void setVitaminA(float vitamin_a) {
this.vitamin_a = vitamin_a;
}
}
您可以从所有其他类中调用该类的 setter 和 getter。 这样做,你需要在每个 Activity 中创建一个 GlobalClass-Object:
GlobalClass gc = (GlobalClass) getApplication();
然后你可以调用例如:
gc.getVitaminA()
【讨论】:
把它放在你的次要活动中
SharedPreferences preferences =getApplicationContext().getSharedPreferences("name", MainActivity.MODE_PRIVATE);
android.content.SharedPreferences.Editor editor = preferences.edit();
editor.putString("name", "Wally");
editor.commit();
把它放在你的 MainActivity 中
SharedPreferences preferences = getApplicationContext().getSharedPreferences("name", MainActivity.MODE_PRIVATE);
if(preferences.contains("name")){
Toast.makeText(getApplicationContext(), preferences.getString("name", "null"), Toast.LENGTH_LONG).show();
}
【讨论】: