0

私のAndroidアプリのsqliteで「option」列が=「lastclick」である「value」列の値を取得しようとしています。

関数のコードは次のとおりです。

public String getLastClick() {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT value FROM config where option='lastclick'", null);
    cursor.moveToFirst();
    return cursor.getString(0);
}

正しく機能していないようです...条件ステートメントに次のコードを使用していますが、VDにアプリを最初にインストールしたときでも、文字列が0として認識されないため、onCreate関数が行を挿入しますデータベースへの「ラストクリック」値は「0」です。

とにかくここにそのコードがあります:

    DatabaseHandler db = new DatabaseHandler(this);
    String lastClick = db.getLastClick();

    // check if its the first time they've ever clicked
    if (lastClick != "0") {
        String millis = String.valueOf(Long.parseLong(dateString) - Long.parseLong(lastClick));
        db.insertRecord(millis);
    }

「オプション」と「値」はどちらもvarcharです。

4

1 に答える 1

2

比較する正しい方法Stringsは、メソッドを使用することequalsです。そのため、代わりに:

if (lastClick != "0") {

書きます:

if (!lastClick.equals("0")) {
于 2012-05-27T07:19:27.443 に答える