0

我正在为 Android 平台制作游戏,我需要从多个活动(成就、声音开/关等)中访问一些信息。我知道我可以将单个值从一个活动传递到另一个活动,但是有没有一种方法可以像数据库一样设置,或者我可以从任何活动中访问变量?

4

4 回答 4

2

是的,您可以使用 SQLite 来持久化数据。还有其他选择:http: //developer.android.com/guide/topics/data/data-storage.html这真的取决于数据的复杂程度。另一种方法是在活动之间以 Serializable 或 Parcelable 对象的形式传递数据,但如果您希望能够从任何活动中重新查询数据,您将需要一个 sqlite db 或某种机制来序列化数据并将其写入磁盘。

于 2012-06-21T01:44:37.853 回答
0

这取决于您的应用程序要求。通常,数据通过“作为意图的一部分发送的额外内容”在 2 个活动之间共享

如果您想在多个活动之间共享数据,那么您可以使用,1. 首选项 - 使用应用程序首选项(存储在应用程序目录中的 XML 文件) 2. 数据库 - 使用 Android 内容提供程序/解析器

于 2012-06-21T01:46:38.057 回答
0

有很多方法可以实现这一目标。您可以设置 SQLite 数据库、使用 SharedPreferences 或结合使用 startActivityForResult() 和 Intent。如果您想研究它们,所有这些都在开发者网站中有详细记录。

于 2012-06-21T03:55:58.207 回答
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 网站上有非常好的教程 - http://developer.android.com/guide/topics/data/index.html

于 2014-08-08T15:48:29.047 回答