Android Java:如何让你的应用程序记住答案

Android Java:如何让你的应用程序记住答案,java,android,xml,database,Java,Android,Xml,Database,我正在我的android手机上做一个测验应用程序,我很长一段时间都在为一个问题挣扎,因为我不知道如何继续。我的测验应用程序的目标是让用户听一个声音并猜它的名字。所以你必须在文本框中键入答案。如果你键入了错误的答案,你可以再试一次。如果您键入了正确答案,应用程序必须记住您键入了正确答案。因此,如果您完成了一个问题,稍后将返回该问题页面,您将看到您键入的正确答案 我的应用程序可以检查你键入的答案,但我的问题是,你是否必须建立一个完整的数据库,让应用程序记住你的答案?这在应用程序中是否可行 我希望有人

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

我的应用程序可以检查你键入的答案,但我的问题是,你是否必须建立一个完整的数据库,让应用程序记住你的答案?这在应用程序中是否可行

我希望有人能帮我解决这个问题,因为我不太熟悉java和制作应用程序…

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


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

您可以轻松地使用SharedReferences进行此操作

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


您可以轻松使用SharedReferences进行此操作

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


在Android上,您有以下存储选项:

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


但是,如果您的问题较少,那么将数据以CSV形式存储到文件中或使用SharedReferences可能是一个最低可行的解决方案,可以帮助您使用功能性应用程序

Android上的存储有以下选项:

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


但是,如果您的问题较少,那么将数据以CSV形式存储到文件中或使用SharedReferences可能是一个最低可行的解决方案,可以帮助您使用功能性应用程序

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

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


您不需要SQL。您确实不需要问题的1:1映射来共享参考键。随着程序的发展,您可以存储一个演变的可序列化对象数组,而不是布尔数组,或者您可能对每个问题库都有一个首选项。

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

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


您不需要SQL。您确实不需要问题的1:1映射来共享参考键。随着程序的发展,您可以存储一个演变的可序列化对象数组,而不是布尔数组,或者您可能对每个问题库都有一个首选项。

但是如果您关闭应用程序并稍后打开它,应用程序还会记得您回答了那个问题吗n?@JustvanTil,是的,这就是SharedReferences的作用。但是如果你关闭应用程序,稍后再打开它,应用程序还会记得你回答了那个问题吗?@JustvanTil,是的,这就是SharedReferences的作用。首先感谢你的回答。我会问很多问题,所以我必须像你说的那样拥有一个数据库。fact是因为我不熟悉应用程序中的数据库。是否可以为每个问题定义一个变量,并将其更改为“1”(完成)和“0”(未完成)?是的,您甚至可以将值存储为true或false(基本上存储为1或0)。首先感谢你的回答。我会提出大量问题,因此我必须像你说的那样拥有一个数据库。事实是我不熟悉应用程序中的数据库。是否可以为每个问题定义一个变量,并将其更改为“1”(完成)和“0”(未完成)?是的,您甚至可以将值存储为true或false(基本上存储为1或0)。
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
preferences.edit().putBoolean("Question_ID", true).commit();