0

ContentValues オブジェクトをデータベースの値と比較しようとしていますが、以下が機能しない理由がわかりません。

ContentValues werte = new ContentValues();
try{
    JSONObject ClickedItem = new JSONObject();
    ClickedItem = resultArray.getJSONObject(position);
    werte.put("name", ClickedItem.getString("name"));
    werte.put("hersteller", ClickedItem.getString("hersteller"));
}
catch (Exception e) {
    System.out.println("Whoops - something went wrong!3");
    e.printStackTrace();
}

Boolean allreadyAdded = false;
Cursor devicesCursor = mDatenbank.query("addedDevices", new String[] {"name", "hersteller"}, null, null, null, null, null);
startManagingCursor(devicesCursor);
devicesCursor.moveToFirst();

for (int i=0;i<devicesCursor.getCount();i++){

    if(devicesCursor.getString(0) == werte.getAsString("name")){
        allreadyAdded = true;
    }
    devicesCursor.moveToNext();
}

if(allreadyAdded==false){                       
    mDatenbank.insert("addedDevices", null, werte);
}

if(devicesCursor.getString(0) == werte.getAsString("name"))うまくいかず、その理由がわかりません。System.out.println は、devicesCursor と が両方とも同じ値を持っていることを示していますが、既に追加されたものは true に設定されません...

4

1 に答える 1

1

演算子を使用して2つの文字列を比較することはできないため==、If条件が真になることはありません。

2つの文字列を比較するには.equals()、またはJava文字列クラス.equalsIgnoreCases()を使用します。

if(devicesCursor.getString(0).equals(werte.getAsString("name")))
于 2013-01-10T11:45:33.613 に答える