我正在为Android平台制作游戏,我需要从多个活动(成就,声音开/关等)访问一些信息。我知道我可以将单个值从一个活动传递到另一个活动,但有没有一种方法可以设置为数据库或我可以从任何活动访问变量的东西?
答案 0 :(得分:2)
是的,您可以使用SQLite来保存数据。还有其他选择:http://developer.android.com/guide/topics/data/data-storage.html这实际上取决于数据的复杂程度。另一种方法是将活动之间的数据作为Serializable或Parcelable对象传递,但如果您希望能够从任何活动中重新查询数据,则需要使用sqlite db或某种机制来序列化数据并将其写入磁盘。
答案 1 :(得分:0)
这取决于您的应用要求。通常,数据在两个活动之间共享, “作为意图的一部分发送的额外内容”
如果您想跨多个活动共享数据,那么您可以使用, 1.首选项 - 使用应用程序首选项(存储在app目录中的XML文件) 2.数据库 - 使用Android内容提供程序/解析程序
答案 2 :(得分:0)
有很多方法可以实现这一目标。您可以设置SQLite数据库,使用SharedPreferences,或将startActivityForResult()与Intent结合使用。如果您想研究它们,所有这些都在开发人员的网站上有详细记录。
答案 3 :(得分:0)
您可以使用共享首选项作为执行此操作的简便方法。
文档说:
SharedPreferences类提供了允许的通用框架 您可以保存和检索原始数据的持久键值对 类型。您可以使用SharedPreferences保存任何原始数据: 布尔,浮子,整数,长整数和字符串。这些数据将持续存在 跨用户会话(即使你的应用程序被杀死)。
以下是文档中的代码:
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
对于其他存储数据的方法,有关android site- http://developer.android.com/guide/topics/data/index.html
的非常好的教程