Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在何处存储要在安装时插入到SQLite的值_Android_Database_Sqlite - Fatal编程技术网

Android 在何处存储要在安装时插入到SQLite的值

Android 在何处存储要在安装时插入到SQLite的值,android,database,sqlite,Android,Database,Sqlite,我是SQLite的新手,故事如下 我正在开发一个apk,它是一种测验应用程序。我想将问题和答案存储在SQLite数据库中。(我也不确定这是否是在SQLite中存储数据的最佳方式) 在onCreate()方法中,我应该创建数据库并插入所有问题、答案等。因此,在将数据插入数据库表之前,我不确定将插入数据库的数据放在哪里 我是说 values.put("key", "What is abc"); ** insert values.put("key", "What is def"); ** insert

我是SQLite的新手,故事如下

我正在开发一个apk,它是一种测验应用程序。我想将问题和答案存储在SQLite数据库中。(我也不确定这是否是在SQLite中存储数据的最佳方式)

在onCreate()方法中,我应该创建数据库并插入所有问题、答案等。因此,在将数据插入数据库表之前,我不确定将插入数据库的数据放在哪里

我是说

values.put("key", "What is abc");
** insert
values.put("key", "What is def");
** insert
values.put("key", "What is ghi");
** insert
values.put("key", "What is xyz");
** insert
...
我应该从哪里获得要插入到表中的字符串(什么是bla-bla)

如果这是一个windows应用程序,我会将它们放在一个.txt文件中,从那里读取,然后插入行

在安卓系统中,我不知道

谢谢你的建议

我也不确定这是否是在SQLite中存储数据的最佳方式

还有更糟糕的选择。:-)

在onCreate()方法中,我应该创建数据库并插入所有问题、答案等

我会提前准备好数据库,将其与您的应用程序打包并部署。这将更容易编写,更容易维护,运行更快。

您可以使用它来实现


一旦在SQLiteOpenHelper#onCreate()方法中有了默认值,就可以添加默认值。

一种方法是:

  • 将数据作为XML文件存储在res/raw文件夹中
  • 创建一个解析器。(DOM适用于小文件。如果文件大小较大,SAX会更好)
  • 在onCreate中解析数据并插入值

    例如: `public void onCreate(SQLiteDatabase db){ ArrayList quizDataList

        quizDataList = ParseQuizData.getQuizData(context);
        ContentValues values = new ContentValues();
        try {
            // Create Database
            db.execSQL(TABLE_CREATE);
            for (Iterator<QuizData> iterator = quizDataList.iterator(); iterator.hasNext();) {
                QuizData quizData = iterator.next();
                values.put(COLUMN1, quizData.getAttributeFirst());
                values.put(COLUMN2, quizData.getAttributeSecond());
    
                db.insertOrThrow(TABLE_NAME, null, values);
    
            }
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    quizdata=ParseQuizData.getQuizData(上下文);
    ContentValues=新的ContentValues();
    试一试{
    //创建数据库
    db.execSQL(创建表);
    for(Iterator Iterator=quizDataList.Iterator();Iterator.hasNext();){
    QuizData QuizData=iterator.next();
    value.put(第1列,quizData.getAttributeFirst());
    value.put(第2列,quizData.getAttributeSecond());
    db.insertOrThrow(表名称,null,值);
    }
    }捕获(例外e){
    e、 printStackTrace();
    }
    
    `


  • “我会提前准备数据库,并将其与您的应用程序打包”是否可能?:)@Mtok:是的,有可能。SQLite被数十万开发人员使用,并且有许多客户端(命令行、GUI和基于浏览器的客户端)。在开发机器上设置数据库,然后按照操作。如果要使用XML路径,请将XML放入
    res/XML/
    中,然后使用
    XmlPullParser
    Resources
    对象返回,因为这将使解析速度加快大约10倍。