开发者

Updating database from an EditText

开发者 https://www.devze.com 2023-01-17 07:56 出处:网络
I have a text field in SQLite database, which I want the user to be able to update. So I extract and display the text in an EditText view. The user edits it and presses \"Update\" button. At this poi

I have a text field in SQLite database, which I want the user to be able to update.

So I extract and display the text in an EditText view. The user edits it and presses "Update" button. At this point I want to update the text field in database with whatever user has in the EditText.

Here's the problem, EditText returns the type Editable.

And the put(String key, String value) function of ContentValues, that I use while updating the record, expects a String. So how to put an Editable in a String?

I tried upcasting the Editable to CharSequence and then casting that to String, but that gives me a runtime exception, ClassCastException, which it very well should (because the object was an Editable to begin with, I cannot make it a String).

So how to get around this? Here's the code I am using. I know it is wrong, but I cannot figure out how to do this.

@Override
public void onClick(View v) {
   // update logic
   CharSequence strNewName = editTextName.getText();

  //U开发者_如何学JAVApdate record in the table
  ContentValues newRecord = new ContentValues();
  newRecord.put(GIDatabase.Students.NAME, (String strNewName); //ClassCastException here
  int rowsEffected = db.update(GIDatabase.Students.STUDENTS_TABLE_NAME, newRecord, GIDatabase.Students._ID + "=?", new String[]{strId});
if (rowsEffected != 1) {
    // This should never be reached                         
         throw new RuntimeException("Error updating name");
}

}


This should do it:

String.valueOf(editTextName.getText())
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号