0

我创建了数据库。我使用 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();


    }

数据库 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>
4

1 回答 1

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();
}   
于 2013-07-23T11:33:11.917 回答