首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何: Android Quiz应用程序,提取da

如何: Android Quiz应用程序,提取da
EN

Stack Overflow用户
提问于 2017-08-10 20:27:14
回答 3查看 1.4K关注 0票数 1

我希望创建一个‘问答’应用程序,将有多个类别,在这些类别将是用户将能够回答的问题,按照顺序,他们的进展将被保存。我希望将进度保存在本地,这样它就可以不用互联网使用,但如果可能的话,我也想访问一些正在保存的信息,例如用户已经完成了什么类别?

我有Java和SQL知识,但当涉及到将它们相加在一起时,我对整个过程感到非常困惑。

我是否需要在应用程序中实现SQLite数据库来为用户存储进度,以及将所需数据在线存储的常规SQL服务器?我本来希望能够使用SQLite数据库来完成这两项工作,但我已经看过了,但我不知道是否有可能。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-11 15:32:31

SQLite是一个内部的安卓数据库,只有用户才能访问它。如果您之前没有使用SQLite的经验,我想提到的是,如果您重新格式化了该应用程序的结构,您将不得不删除该应用程序并再次安装它,因为只有在该应用程序首次打开时才调用onCreate()方法。

对于你的问题,你可以这样做:

用户不需要访问互联网就可以通过测试,并且每个测试结果都可以存储在SQLite中。您可以简单地添加一条语句来检查用户是否连接到互联网。如果他是连接的,从SQLite获取所有数据,使JSON对象从您获得的数据中生成,并使用Volley或Retrofit通过您应该创建的REST Api将这些数据发送到Api服务器。如果你有任何问题,请问

票数 0
EN

Stack Overflow用户

发布于 2017-08-11 15:23:27

SQLite数据库仅用于本地存储,这意味着您将无法使用它与其他设备通信。

下面是我的java和SQLite交互的示例

代码语言:javascript
复制
public List multiplyFat(){

String totalFat = "SELECT " + total + " FROM " + MyTable + " WHERE ( "
    + gas + " + " + shopping + " ) > 1200"; 

SQLiteDatabase db = this.getReadableDatabase(); 

因为我们需要打开一个可读的数据库会话

代码语言:javascript
复制
List<Food> storeTotalFat = new ArrayList<>(); 

我们创建一个数组来存储来自SQLite数据库的数据。

代码语言:javascript
复制
Cursor cursor = db.rawQuery(totalFat, null);

将光标视为引导代码通过上述查询生成的所有行的一种方法。

代码语言:javascript
复制
cursor.moveToFirst();
 while (!cursor.isAfterLast()) {
  do {
     double fat = Double.parseDouble(cursor.getString(0));
      storeTotalFat.add(new Food(fat));
    } cursor.moveToNext();
  }
  cursor.close();
  return storeTotalFat;
}

现在,当从另一个活动调用此方法时,您将准备好一个已填充的ArrayList来执行您想要的任何操作。

//关于您要使用的数据库的问题

由于您想要这个共享数据库,所以可以使用Google云平台

我更喜欢使用,但这在NoSQL之外有效,这意味着您必须使用JSON进行查询。

票数 0
EN

Stack Overflow用户

发布于 2017-08-10 21:04:26

如果要在本地保存数据,则需要SharedPreferences (https://developer.android.com/training/basics/data-storage/shared-preferences.html)。数据很少,所以浪费了一个数据库。相反,如果您想要一个在线数据库,例如,您需要Firebase。它非常好,并为您提供其他工具,如崩溃工具,以了解您的应用程序崩溃在所有设备(https://firebase.google.com/docs/android/setup)。

例如,您可以使用SharedPreferences保存问题,并使用Firebase记录所有玩家的积分和名称。SQLite只是本地的( https://stackoverflow.com/a/21599873/7339411),但不使用它,您可以使用SharedPreferences,它更容易和更快。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45622907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档