Как вставить данные в базу данных с помощью EditText? - PullRequest
2 голосов
/ 27 марта 2012

Я пытаюсь вставить данные в базу данных SQLite, используя get EditText, но я не могу найти решение для этого.До сих пор я не могу понять, как работает EditText.Я попытался использовать одно из решений здесь, но я не понимаю, как с ним работать. Вставка данных EditText & Spinner в SQLite .

Вот мой код.

DatabaseActivity.java

public class DatabaseActivity extends Activity {

 DBAdapter db = new DBAdapter(this);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button submitbutton = (Button) findViewById(R.id.submitbutton);

    submitbutton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
             db.open();
             //long id;
             //id = db.insertTitle("isbn", "title", "publisher");

             EditText editTextIsbn = (EditText)findViewById(R.id.EditTextIsbn);
             String IsbnValue = editTextIsbn.getText().toString();

             EditText editTextTitle = (EditText)findViewById(R.id.EditTextTitle);
             String TitleValue = editTextTitle.getText().toString();

             EditText editTextPublisher = (EditText)findViewById(R.id.EditTextPublisher);
             String PublisherValue = editTextPublisher.getText().toString();
             db.close();
        }
      });        
 }
}

DBAdapter.java

    public class DBAdapter 
{

    public static final String KEY_ROWID = "_id";
    public static final String KEY_ISBN = "isbn";
    public static final String KEY_TITLE = "title";
    public static final String KEY_PUBLISHER = "publisher";    
    private static final String TAG = "DBAdapter";
    private static final String DATABASE_NAME = "books";
    private static final String DATABASE_TABLE = "titles";
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE =
        "create table titles (_id integer primary key autoincrement, "
        + "isbn text not null, title text not null, " 
        + "publisher text not null);";



    private final Context context;

    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx) 
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }


    //---insert a title into the database---
        public long insertTitle(String isbn, String title, String publisher) 
        {
            ContentValues initialValues = new ContentValues();
            initialValues.put(KEY_ISBN, isbn);
            initialValues.put(KEY_TITLE, title);
            initialValues.put(KEY_PUBLISHER, publisher);
          return db.insert(DATABASE_TABLE, null, initialValues);
        }

Заранее спасибо.

1 Ответ

3 голосов
/ 27 марта 2012

Хмм, вам действительно нужно использовать ваш метод insertTitle, который вы знаете ... он не собирается ничего делать, просто сидя там.Похоже, что вы пробовали это раньше, но не в том месте, перед тем, как устанавливать строковые значения из полей EditText.

После того, как вы получите последнее значение EditText и перед вашим db.close (), вставьте следующее:

db.insertTitle(IsbnValue, TitleValue, PublisherValue);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...