Java 如何:Android问答应用程序,解压da

Java 如何:Android问答应用程序,解压da,java,android,sql,sqlite,Java,Android,Sql,Sqlite,我正在寻找创建一个“测验”应用程序,将有多个类别,在这些类别将是问题,用户将能够回答的顺序,他们的进展将被保存。我希望进度保存在本地,以便在没有互联网的情况下使用,但如果可能,我还希望访问正在保存的一些信息,例如哪些用户已完成了哪些类别 我有Java和SQL方面的知识,但当涉及到将它们添加到一起时,我对整个事情感到非常困惑 我是否需要在应用程序中实现一个SQLite数据库来存储用户的进度,以及一个将在线存储所需数据的常规SQL server?我希望使用SQLite数据库来完成这两个任务是可能的,

我正在寻找创建一个“测验”应用程序,将有多个类别,在这些类别将是问题,用户将能够回答的顺序,他们的进展将被保存。我希望进度保存在本地,以便在没有互联网的情况下使用,但如果可能,我还希望访问正在保存的一些信息,例如哪些用户已完成了哪些类别

我有Java和SQL方面的知识,但当涉及到将它们添加到一起时,我对整个事情感到非常困惑

我是否需要在应用程序中实现一个SQLite数据库来存储用户的进度,以及一个将在线存储所需数据的常规SQL server?我希望使用SQLite数据库来完成这两个任务是可能的,但是我已经看过了,我不知道这是否可能


谢谢。

如果您想在本地保存数据,您需要SharedReferences()。数据很少,因此浪费了数据库。相反,如果你想要一个在线数据库,你需要Firebase作为例子。这非常好,并为您提供了其他工具,如崩溃工具,以了解您的应用程序在所有设备上的崩溃情况()


例如,您可以使用SharedReferences保存问题,使用Firebase记录所有玩家的分数和姓名。SQLite只是本地的(),但不使用它,您可以使用SharedReferences来实现,它更简单、更快。

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

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

public List multiplyFat(){

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

SQLiteDatabase db = this.getReadableDatabase(); 
因为我们需要打开一个可读的数据库会话

List<Food> storeTotalFat = new ArrayList<>(); 
将光标视为引导代码遍历上述查询生成的所有行的方法

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,可以对其执行任何操作

//现在,关于使用哪个数据库的问题

由于需要此共享数据库,可以使用


我更喜欢使用GoogleFirebase,但这是NoSQL的工作原理,这意味着您必须使用JSON进行查询

SQLite是Android的内部数据库,只有用户才能访问。如果您以前没有使用过它,我想说的是,如果您重新格式化SQLite的结构,您将不得不删除应用程序并再次安装它,因为onCreate()方法仅在应用程序首次打开时才被调用

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


用户不必访问internet就可以通过测验,并且每个测验结果都可以存储在SQLite中。您可以简单地添加一条语句,检查用户是否连接到internet。如果他已连接,则从SQLite获取所有数据,从您获得的数据中生成一个JSON对象,并使用Volley或Reformation通过您应该生成的RESTAPI将此数据发送到Web服务器。如果您有任何问题,请询问

,因此,如果我不想将其存储在本地,并且只有在连接到internet时才可以访问它,那么我是否只需要像godaddy这样的服务器?问题是否需要SQLite DB,或者是否有更简单的方法?我见过一些基本的应用程序示例,它们不需要一个,但正如前面提到的,我想保存进度。编辑:不太确定firebase的用途是什么,是否存储DB?我知道了,非常感谢。编辑:firebase是否使用自己的语言?我要看看如何在应用程序中实现它。看到这一点让我有点困惑哈哈,你知道任何你认为对我有帮助的相关教程吗?@BlueBull嗯,共享参考真的很简单:你只需要阅读“写入共享参考”和“从共享参考中读取”的段落第一个环节。只要复制代码,并在需要时使用它。对于Firebase,我建议您和。在这最后一段中,播放列表没有被订购。谢谢。我回家后会看一看。Android编程类似于OOP吗?我需要为每个类别创建多个java类吗?很抱歉,我很快就要结束了:PSo你不认为我应该像古玩说的那样使用firebase吗?您建议使用哪种服务器来存储数据?您可以使用google firebase。请检查此链接:您还可以创建自己的web服务器,它将从您的应用程序获取http请求,并将数据推送到在线托管的SQL数据库。请,如果我的回答有用的话,请把它标记为“我对此感到抱歉,我想我还是很困惑,因为我已经给出了一些选择哈哈。”。我也有点恐慌。我将浏览一下这个链接,希望它能对您有所帮助。在我看来,(无论是功能上还是实践上)最好的做法是制作您自己的RESTAPI并在线托管,例如heroku。阅读关于RESTAPI的文章!换句话说:从android,如果用户连接到互联网,您将以JSON格式将结果发送到REST API,从服务器端,您只需将数据推送到数据库中,让它成为MYSQL或任何其他数据库。如果您愿意,我们可以在其他地方继续讨论,例如skypeHi Andrew,谢谢您的回复。目前我有一些数据作为sqlite数据库输入。我已经通过firebase完成了登录,但如果我能通过Skype挑选你的大脑,那就太棒了。你能通过PM对你的名字发起攻击吗?这听起来很合理,谷歌云和firebase有很大区别吗?你有没有任何链接可以帮助我实现这一点?至于两者之间的区别,请转到这里。如果您想在Firebase中学习教程,请仔细阅读并解释所有步骤。
cursor.moveToFirst();
 while (!cursor.isAfterLast()) {
  do {
     double fat = Double.parseDouble(cursor.getString(0));
      storeTotalFat.add(new Food(fat));
    } cursor.moveToNext();
  }
  cursor.close();
  return storeTotalFat;
}