java - Android 为什么我的 checkDB 一直给出 false?

标签 java android

我正在尝试创建一个按钮,根据数据库是否存在切换到 2 个 Activity 之一。我已经制作了一个数据库检查助手,但由于某种原因它总是给出错误,即使数据库存在。

点击按钮时的代码:

public void open_my_training(View view) {

    Intent intent;

    boolean databaseExists = checkDatabase.checkDB(this);
    if(databaseExists){
        intent = new Intent(this, a.class);
    }else{
        intent = new Intent(this, b.class);
    }
    startActivity(intent);
}

helper

public class checkDatabase {

    public static boolean checkDB(Context context) {
        File dbFile = context.getDatabasePath("database.db");
        return dbFile.exists();
    }
}

谁能告诉我我做错了什么?

编辑:

由于代码似乎没问题,我将添加用于创建数据库的代码:

public void save_training(View view) {

    CheckBox box1 = (CheckBox) findViewById(R.id.box1);
    CheckBox box2 = (CheckBox) findViewById(R.id.box2);


    Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
    String spinner1 = spinner1.getSelectedItem().toString();

    createDatabase();
    addTraining(box1.isChecked(), box2.isChecked(), spinner1);
}


private void createDatabase() {
    try {

        trainingDB = this.openOrCreateDatabase("database.sqlite", MODE_PRIVATE, null);

        trainingDB.execSQL("CREATE TABLE IF NOT EXISTS table1" + "(id integer primary key," +
                "box1 boolean, box2 boolean, + "spinner1 VARCHAR);");

}

private void addTraining(boolean box1Checked, boolean box2Checked, String spinner1) {

    trainingDB.execSQL("INSERT INTO table1 (box1, box2, spinner1) VALUES ('"+ box1Checked + "', '" +
            box2Checked + "', '" + spinner1 + "');");
}

最佳答案

替换

文件 dbFile = context.getDatabasePath("database.sqlite");

而不是

文件 dbFile = context.getDatabasePath("database.db");

关于java - Android 为什么我的 checkDB 一直给出 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942038/

相关文章:

java - 使用 Java 的正则表达式从路径名中提取单词

Android - 谷歌地图

Android - 我应该通过 savedinstancestate 保存我的对象还是只保存它的 ID

java - 如何在带有通配符的泛型映射中使用带有类型化参数的泛型集合 (Java)

java - 访问器方法的使用

java - 如何在java中将无名对象转换为JSON(使用GSON)?

java - 如何断言 map 包含带有条目的 map

java - 代码中惊人的错误

java - 无法在 ImageView 中显示从图库导出的图片

java - 选中单选按钮上的 Android Java 双向绑定(bind)