2013-07-23 3 views
0

Я создал базу данных. Я использовал edittext для вставки данных в свою базу данных. В моих редакторах есть проблема. Когда я использовал журнал, чтобы показывать данные в моих редакторах, но они пусты. Я не понимаю, где проблема. Пожалуйста, помогите мне. Заранее спасибо.Что делает мой 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

u не может использовать 2 макета в одном действии – KOTIOS

ответ

4

Ваша проблема вы объявляя EditText и извлечение его значения одновременно. Так что он будет пустым все время.

Что вы должны сделать, объявите свой EditText в методе onCreate() и извлеките его значение для какого-либо события, например 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().then ?? ? –

+3

Он пуст, потому что вы просто инициализируете EditText и не вводите в него никаких символов. – Vigbyor

+0

Vigbyor является правильным. Вы устанавливаете текстовое значение в TextViews, однако EditText не содержит никакого значения, поэтому ваши строки являются «". – JesusS

Смежные вопросы