2016-03-23 23 views
0

Veritabanı dosyama bir stringbuilder kaydetmeyi başaramıyorum. ContentValues.putAll'ın nasıl çalıştığımı anlayamıyorum, bunun benim problemimi nasıl çözmem gerektiğini düşünüyorum. Bu, konuyla ilgili koddur.SQLiteDatabase'e Kaydetme StringBuilder

ben şu ifadeyi olması gerekir .. ') DatabaseOperations.updateDatabase (' ı 'etNameString' ve 'strReturnedAddress' ve sonra her iki saklar benim ana aktivitede bir değişken olduğunu yapmanız gerekenler düşünüyorum:

args.putAll (değerleri)

Ancak, her iki değişkendeki değerlerin nasıl kaydedileceğini bilmiyorum. Affedersiniz, bu konuda oldukça yeniyim. Şimdiden teşekkürler.

Satır ekle yöntemi:

**DatabaseOperations class** 

public static final String DATABASE_NAME = "HDL_DB"; 
public static final String TABLE_NAME = "HDL_Table"; 
public static final String COL_1 = "Name"; 
public static final String COL_2 = "Address"; 


public String CREATE = "CREATE TABLE " + TABLE_NAME + " (" + 
       COL_1 + " TEXT" + COL_2 + " TEXT)"; 
+0

bu' args.put (COL_2, Address.toString()) deneyin: Hiçbir şey sizin iki sütun adlarını (ilk TEXT sonra virgül ve boşluk dikkat edin) ayıran yok Herhangi bir hata var – Yazan

+0

Gerçekten çok yardımcı olan Thankyou! –

cevap

0

İki sorunları: (strReturnedAddress gösterilmeyen kodlarında tanımlanan)

**MainActivity class** 

//Updates Database with Name // Shows Toast // Sets Text Field to Blank 
        EditText etName = (EditText) findViewById(R.id.etName); 
        String etNameString = etName.getText().toString(); 
        db.updateDatabase(etNameString, strReturnedAddress); 
        Toast toast = Toast.makeText(MainActivity.this, "Entry Saved", Toast.LENGTH_SHORT); 
        toast.show(); 
        etName.setText(" "); 

benim veritabanını oluşturma: argümanlar ile updateDatabase için

**DatabaseOperations class** 

public void updateDatabase(String Name, StringBuilder Address) { 
    SQLiteDatabase myDB = this.getWritableDatabase(); 
    ContentValues args = new ContentValues(); 
    args.put(COL_1, Name); 
    args.put(COL_2, Address); 
    myDB.insert(TABLE_NAME, null, args); 
    Log.d("Database Operations", "Entry Successful"); 
} 

Çağrı . Kullanıcı Yazan kendi yorumunu belirtilen Bir, ikinci sorunun DatabaseOperations sınıfta dize CREATE ile args.put(COL_2, Address.toString());

ile sizin StringBuilder gelen dize almalısınız. eğer logcat kontrol `;

public String CREATE = "CREATE TABLE " + TABLE_NAME + " (" + 
      COL_1 + " TEXT, " + COL_2 + " TEXT)"; 
+0

Çok teşekkürler! Sorunumla ilgili yardımın için gerçekten minnettarım :) –