-1

我有一个只包含一个值的数据库。它有两列,分别是“id”和“status”。id = 1 且状态 = FALSE。当我写的条件满足时,我想将我的表更新为 TRUE。

    System.out.println("!!!!!entered here!!!!!!!!!");
    ContentValues cv = new ContentValues();
    cv.put("1", "TRUE");
    System.out.println("!!!!!entered here!!!!!!!!!");       

    db.update("main", cv, "id = 1", null);
    System.out.println("??????not entered here??????"); 

它迫使我退出,当然也没有更新我的表格。

我正在尝试这个来检查一个条件,如果它得到满足,它就会使状态为真。如果状态为 FALSE,我的应用程序将进入 CheckScreen,如果为 TRUE,我的应用程序将不会进入该屏幕。

我也在听你对此案的解决方案。

4

2 回答 2

0

我找到了解决问题的方法,我使用了共享首选项。我的目的是在设备上保持最初为“假”的状态,当用户下载应用程序,输入密码时,使该状态为“真”。

我的介绍课

    SharedPreferences mSharedPrefs = getSharedPreferences("xmlFile", MODE_PRIVATE);

    boolean checkValue = mSharedPrefs.getBoolean("bool", false);
    if (checkValue) {
        Intent intent = new Intent(Intro.this, MainScreen.class);
        startActivity(intent);
    } else {
        Intent intent = new Intent(Intro.this, KeyCheckClass.class);
        startActivity(intent);
    }
}

我的 KeyCheckClass.class

...
private boolean check(String str) {
        // my validation algorithm
    }

    SharedPreferences mSharedPrefs = getSharedPreferences("xmlFile",
            MODE_PRIVATE);
    SharedPreferences.Editor mPrefsEditor = mSharedPrefs.edit();

    mPrefsEditor.putBoolean("bool", true);
    mPrefsEditor.commit();

    return true;
}

在我的 MainScreen.class 上,我的应用真正开始了。现在,输入有效密码后,手机不会再次进入 KeyCheckClass.class,而是通过 MainScreen.class

于 2012-06-29T07:56:05.813 回答
0

您的内容价值:

 ContentValues cv = new ContentValues();
 cv.put("1", "TRUE");

应该

   ContentValues cv = new ContentValues();
   cv.put("status", "TRUE");

status 是您要更新的列名。

例如:

 DBHelper dbHelper = new DBHelper(context);
 SQLiteDatabase db = dbHelper.getWritableDatabase();
 ContentValues updateValues = new ContentValues();
 updateValues.put("status", "TRUE");
 int updated = db.update(MYDATABASE_TABLE, updateValues, KEY_ID+"="+id, null);
于 2012-06-28T13:28:18.380 回答