0

我正在我的android手机上制作一个测验应用程序,我现在很长一段时间都在努力解决一个问题,因为我不知道如何继续。我的测验应用程序的目标是让用户听声音并猜出它的名字。因此,您必须在文本框中输入您的答案。如果您输入错误的答案,您可以再试一次。如果您输入正确答案,应用程序必须记住您输入了正确答案。因此,如果您完成了一个问题并且稍后将返回该问题页面,您将看到您输入的正确答案。

我的应用程序可以检查您输入的答案,但我的问题是您是否必须创建一个完整的数据库才能让应用程序记住您的答案?这可能在应用程序上吗?

我希望有人可以帮助我解决我的问题,因为我对java和制作应用程序不太熟悉......

4

4 回答 4

3

您可以轻松地为此使用 SharedPreferences。

只需保存一个布尔值即可将问题标记为已回答。例子:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
preferences.edit().putBoolean("Question_ID", true).commit();

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html

于 2013-03-07T22:01:04.527 回答
1

您可以在 Android 上使用以下存储选项:http: //developer.android.com/guide/topics/data/data-storage.html

如果你有大量的测验问题,那么毫无疑问你应该使用 SQLite。

但是,如果您的问题数量较少,那么将数据作为 CSV 存储到文件中或使用 SharedPreferences 可能是让您开始使用功能性应用程序的最小可行解决方案。

于 2013-03-07T22:01:18.353 回答
0

http://developer.android.com/guide/topics/data/data-storage.html

您可以使用简单文件、共享首选项或数据库。阅读上面链接的页面。它有你需要的一切,包括示例代码和很好的解释。

于 2013-03-07T22:00:52.023 回答
0

如果你的问题是有序的——即使你是随机呈现它们,它们也应该是有序的,因为你在应用启动时从某个流中读取它们或将它们放在某个数组中——那么用户的答案可以采用相同的顺序,并且你的程序的问题“用户做对了吗?” (以及测验软件可能会问到的许多其他有用的问题)的回答很简单:这是什么#问题,内部?哦,是 42。那么 userGotItRight[42] 是真是假?

userGotItRight[] 是一个布尔数组,您可以毫不费力地将其保存在单个 SharedPreference 中。

您不需要 SQL。您肯定不需要 1:1 的问题映射到 SharedPreference 键。随着程序的发展,您可以存储演变的可序列化对象数组而不是布尔数组,或者您可能对每个问题库都有偏好。

于 2013-03-07T22:44:01.700 回答