dimanche 25 octobre 2015

insertion in database from ContentValues not working

private EditText etWord;
private EditText etTranslation;
private Switch engUsrb;
private FloatingActionButton fab;

private RjecnikDB dbRjecnik; // class that extends SQLiteOpenHelper
private SQLiteDatabase db;
private ContentValues values;

private String word;
private String translation;
private boolean eng;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_word);

    ////////// findViewById //////////
    etWord = (EditText) findViewById(R.id.etWord);
    etTranslation = (EditText) findViewById(R.id.etTranslation);
    engUsrb = (Switch) findViewById(R.id.engUsrb);
    fab = (FloatingActionButton) findViewById(R.id.fabSaveWord);

    word = etWord.getText().toString();
    translation = etTranslation.getText().toString();
    eng = engUsrb.isChecked();

    dbRjecnik = new RjecnikDB(this);
    db = dbRjecnik.getWritableDatabase();

    ////////// Adding to database //////////
    values = new ContentValues();
    values.put(RjecnikDB.COLUMN_WORD, word);
    values.put(RjecnikDB.COLUMN_TRANSLATION, translation);
    values.put(RjecnikDB.COLUMN_ENGUSRP, eng);

    ///////// Floating Action Button Listener //////////
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            db.insert(RjecnikDB.TABLE, null, values);

            etWord.setText("");
            etTranslation.setText("");
            etWord.requestFocus();
        }
    });
}

I can't figure out why this make new row in table but it is always null value for both of EditText views. If I add text tag in EditText in XML e.g. android:text="default", that works, that make new row with value "default" as expected, but obtaining text from EditText views not working.

Aucun commentaire:

Enregistrer un commentaire