是什么让我的EditText变空?

时间:2013-07-23 11:30:30

标签: android sqlite android-layout android-edittext

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

1 个答案:

答案 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();
}