我创建了数据库。我使用edittext将数据插入到我的数据库中。我的edittexts存在问题。当我使用log来显示我的edittexts中的数据但它们是空的。我不明白问题出在哪里。请帮我。提前谢谢。
添加数据:
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 :(得分: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();
}