android - 如何使用EditText向数据库插入数据?

标签 android sqlite android-edittext

我正在尝试使用 get EditText 将数据插入 SQLite 数据库,但我似乎找不到解决方案。到目前为止,我似乎无法理解 get EditText 似乎如何工作。我已经尝试使用这里的解决方案之一,但我不明白如何工作。 Inserting EditText & Spinner data into 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);
        }

提前致谢。

最佳答案

嗯,你需要实际使用你知道的 insertTitle 方法...它不会只是坐在那里做任何事情。在从 EditText 字段设置字符串值之前,您似乎之前尝试过,但在错误的位置。

在获取最后一个 EditText 值之后和 db.close() 之前,插入以下内容:

db.insertTitle(IsbnValue, TitleValue, PublisherValue);

关于android - 如何使用EditText向数据库插入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882697/

相关文章:

database - 为什么在 SQLite 中插入一个 Integer 会失败?

android - 单击按钮时插入sqlite

c# - SQLITE3+ Catnap + MonoTouch 改变表添加列 pb

java - 从edittext-Android获取文本出错

android - 如何在输入法服务和服务内部的编辑文本之间建立一个inputConnection

android - 多行 EditText 中的定位提示 - TextInputLayout

Android 模拟器无法识别 GPS 已启用

java - AsyncTask - 不在主线程上

android - 无法在 MapView 下方设置按钮

Android,RXJava,使用去抖动搜索