【问题标题】:How to insert data into database using EditText?如何使用 EditText 将数据插入数据库?
【发布时间】:2012-03-27 12:25:03
【问题描述】:

我正在尝试使用 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);
        }

提前致谢。

【问题讨论】:

  • 您正在插入硬编码值...尝试 db.insertTitle(IsbnValue , TitleValue , PublisherValue);

标签: android sqlite android-edittext


【解决方案1】:

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

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

db.insertTitle(IsbnValue, TitleValue, PublisherValue);

【讨论】:

  • 非常感谢,我按照你说的解决了:)。我是 Android 编程新手。
猜你喜欢
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2017-01-11
  • 2017-08-02
  • 2014-11-20
  • 2018-08-06
  • 2021-02-27
相关资源
最近更新 更多