2013-07-23 65 views
0

我創建了數據庫。我用edittext插入數據到我的數據庫。我的edittext中有一個問題。當我用日誌顯示我的edittexts中的數據,但他們是空的。我不明白問題在哪裏。請幫幫我。提前致謝。什麼使我的EditText變爲空?

添加數據:

public void AddData() { 
     setContentView(R.layout.dbase2); 
     EditText e1 = (EditText) findViewById(R.id.eText1); 
     EditText e2 = (EditText) findViewById(R.id.eText2); 
     EditText e3 = (EditText) findViewById(R.id.eText3); 
     EditText e4 = (EditText) findViewById(R.id.eText4); 

     String bn = dContents; 
     String pn = e1.getText().toString(); 
     String at = e2.getText().toString(); 
     String tp = e3.getText().toString(); 
     String py = e4.getText().toString(); 

     SQLiteDatabase db = book.getWritableDatabase(); 
     ContentValues cv = new ContentValues(); 

     cv.put("bNum", bn); 
     cv.put("pName", pn); 
     cv.put("author", at); 
     cv.put("type", tp); 
     cv.put("pyear", py); 

     db.insert("btable", null, cv); 
     db.close(); 


    } 

DBASE 2.XML

<TextView android:id="@+id/t1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="27dp" android:text="Ürün İsmi" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/t2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/eText1" android:layout_centerHorizontal="true" android:text="Yazar" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/eText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/eText1" android:layout_below="@+id/t2" android:ems="10" /> <EditText android:id="@+id/eText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/t1" android:gravity="top" android:layout_centerHorizontal="true" android:ems="10" > <requestFocus /> </EditText> <TextView android:id="@+id/t3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/t2" android:layout_below="@+id/eText2" android:text="Türü" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/eText3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/eText2" android:layout_below="@+id/t3" android:ems="10" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/t1" android:layout_below="@+id/eText3" android:text="Yayın Yılı" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/eText4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/eText3" android:layout_below="@+id/textView1" android:ems="10" /> <Button android:id="@+id/adding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/eText4" android:layout_centerHorizontal="true" android:layout_marginTop="36dp" android:text="Kayıt Ekle" /> </RelativeLayout> </pre>
+0

是烏拉圭回合的setContentView(R.layout.dbase2);在OnCreate方法?從上面的代碼看起來似乎不是.. – KOTIOS

+0

不,它不在onCreate()方法中。在onCreate()方法中,我有另一個佈局。 – Adaichi

+1

你不能在一個活動中使用2佈局 – KOTIOS

回答

4

您的問題,您聲明一個EditText,並在同一時間讀取它的價值。所以它一直是空白的。你應該做的是,在onCreate()方法中聲明你的EditText,並在像onClick()這樣的事件上獲取它的值。

試試我的方法,

public void AddData() 
{ 
    setContentView(R.layout.dbase2); 
    EditText e1 = (EditText) findViewById(R.id.eText1); 
    EditText e2 = (EditText) findViewById(R.id.eText2); 
    EditText e3 = (EditText) findViewById(R.id.eText3); 
    EditText e4 = (EditText) findViewById(R.id.eText4); 
} 

public void onClick (View view) // I am assuming you have one command Button 
{ 

    String bn = dContents; 
    String pn = e1.getText().toString(); 
    String at = e2.getText().toString(); 
    String tp = e3.getText().toString(); 
    String py = e4.getText().toString(); 

    SQLiteDatabase db = book.getWritableDatabase(); 
    ContentValues cv = new ContentValues(); 

    cv.put("bNum", bn); 
    cv.put("pName", pn); 
    cv.put("author", at); 
    cv.put("type", tp); 
    cv.put("pyear", py); 

    db.insert("btable", null, cv); 
    db.close(); 
} 
+0

爲什麼它將是空的任何具體或具體的原因,所以如果他在onCreate()方法中調用此方法,那麼在方法內部聲明它有什麼問題。 ? –

+3

它是空白的,因爲你只是初始化EditText,並且你沒有輸入任何字符。 – Vigbyor

+0

Vigbyor是對的。您將文本值設置爲TextView,但EditText不包含任何值,因此您的字符串是「」。 – JesusS

相關問題