Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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:具有默认值的SQL数据库_Android_Sql_Database - Fatal编程技术网

Android:具有默认值的SQL数据库

Android:具有默认值的SQL数据库,android,sql,database,Android,Sql,Database,我需要在Android应用程序中创建一个SQL数据库。这是我的代码: @Override public void onCreate(SQLiteDatabase database) { database.execSQL(createTable(FeedColumns.TABLE_NAME, FeedColumns.COLUMNS)); database.execSQL(createTable(FilterColumns.TABLE_NAME, FilterColumns.

我需要在Android应用程序中创建一个SQL数据库。这是我的代码:

    @Override
public void onCreate(SQLiteDatabase database) {
    database.execSQL(createTable(FeedColumns.TABLE_NAME, FeedColumns.COLUMNS));
    database.execSQL(createTable(FilterColumns.TABLE_NAME, FilterColumns.COLUMNS));
    database.execSQL(createTable(EntryColumns.TABLE_NAME, EntryColumns.COLUMNS));
    database.execSQL(createTable(TaskColumns.TABLE_NAME, TaskColumns.COLUMNS));

private String createTable(String tableName, String[][] columns) {
    if (tableName == null || columns == null || columns.length == 0) {
        throw new IllegalArgumentException("Invalid parameters for creating table " + tableName);
    } else {
        StringBuilder stringBuilder = new StringBuilder("CREATE TABLE ");

        stringBuilder.append(tableName);
        stringBuilder.append(" (");
        for (int n = 0, i = columns.length; n < i; n++) {
            if (n > 0) {
                stringBuilder.append(", ");
            }
            stringBuilder.append(columns[n][0]).append(' ').append(columns[n][1]);
        }
        return stringBuilder.append(");").toString();
    }
}
@覆盖
public void onCreate(SQLiteDatabase){
execSQL(createTable(FeedColumns.TABLE_NAME,FeedColumns.COLUMNS));
execSQL(createTable(FilterColumns.TABLE_NAME,FilterColumns.COLUMNS));
execSQL(createTable(EntryColumns.TABLE_NAME,EntryColumns.COLUMNS));
execSQL(createTable(TaskColumns.TABLE_NAME,TaskColumns.COLUMNS));
私有字符串createTable(字符串表名,字符串[][]列){
if(tableName==null | | columns==null | | columns.length==0){
抛出新的IllegalArgumentException(“用于创建表的参数无效”+tableName);
}否则{
StringBuilder StringBuilder=新建StringBuilder(“创建表”);
stringBuilder.append(tableName);
stringBuilder.append(“”);
for(int n=0,i=columns.length;n0){
stringBuilder.append(“,”);
}
stringBuilder.append(列[n][0]).append(“”).append(列[n][1]);
}
返回stringBuilder.append(“);”).toString();
}
}
如何在创建时填充此数据库?
谢谢。

你是说你想从一个不是空的但有一些内容的数据库开始吗?你可以通过在你的计算机上创建你想要的数据库,然后把它放在项目资产/文件夹中来实现。然后你必须在应用启动时将它复制到正确的位置

为此你需要安卓

用于管理数据库创建和版本的Android helper类 使用应用程序的原始资产文件进行管理

这个类为开发者提供了一种简单的方式来发布他们的Android 具有现有SQLite数据库的应用程序(可能预先填充了 并管理其初始创建和所需的任何升级 与后续版本一起发布

当然,如果你想写一些代码,你可以不用这个库,自己动手。

你说的“创建时”是什么意思?