【发布时间】:2014-09-26 07:32:18
【问题描述】:
我希望能够在不打开活动 b 的情况下将数据从活动 a 传输到活动 b,我希望稍后能够返回活动 b 并查看显示的数据我希望数据(文本)保持均匀如果手机已关闭或应用已关闭。
我已经尝试过使用意图和共享偏好,但是我看到的示例都需要我去活动 b。
【问题讨论】:
标签: android android-intent sharedpreferences send
我希望能够在不打开活动 b 的情况下将数据从活动 a 传输到活动 b,我希望稍后能够返回活动 b 并查看显示的数据我希望数据(文本)保持均匀如果手机已关闭或应用已关闭。
我已经尝试过使用意图和共享偏好,但是我看到的示例都需要我去活动 b。
【问题讨论】:
标签: android android-intent sharedpreferences send
SharedPreferences 不一定要求您转到活动 B。它基本上只是让您轻松访问文件,您可以从任何活动中做到这一点。例如,在活动 A 中创建这些方法:
public String getPreference() {
SharedPreferences sp = getSharedPreferences("preferenceName", 0);
return sp.getString("preferenceKeyValue", "default value if no preference is found");
}
public void setPreference(String data) {
SharedPreferences.Editor editor = getSharedPreferences("preferenceName", 0).edit();
editor.putString("preferenceKeyValue", data).commit();
}
然后这样称呼他们:
setPreference("data for activity B");
// later on...
String data = getPreference();
该示例使用字符串,但您可以保存以下任何数据:布尔值、浮点数、整数、长整数和字符串。
以下是根据您的具体情况修改的方法(更好的命名):
public String getActivityBData() {
SharedPreferences sp = getSharedPreferences("Activity B Data", 0);
return sp.getString("data", "There is no data yet!");
}
public void setActivityBData(String str) {
SharedPreferences.Editor editor = getSharedPreferences("Activity B Data", 0).edit();
editor.putString("data", str).commit();
}
您也可以将这些方法放在您的活动 B 类中并像这样访问它们。保存的这些数据并不特定于任何活动。
【讨论】:
您必须使用 Sqlite 数据库或使用共享首选项
检查此链接:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
http://developer.android.com/reference/android/content/SharedPreferences.html
Sqlite 数据库示例:
http://www.vogella.com/tutorials/AndroidSQLite/article.html
http://hmkcode.com/android-simple-sqlite-database-tutorial/
http://www.tutorialspoint.com/android/android_sqlite_database.htm
【讨论】: