插入EditText& Spinner数据到SQLite?

时间:2012-01-04 02:32:46

标签: java android sqlite

我正试图弄清楚如何使用EditText& amp; Spinner并将其插入SQLite数据库。我能够编写硬编码属性,但是当我尝试使用R.id.fieldName时,由于是一个整数的字符串,它会抛出一个错误。

public class PetAdd extends Activity {
DBAdapter db = new DBAdapter(this);
private OnClickListener btnPetAddListener = new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        db.open();
        long id;
        id = db.insertPet("name", "type", "breed", "sex", "notes");
         /**id = db.insertPet(R.id.petName, R.id.SpinnerPetType, R.id.petBreed, R.id.SpinnerPetGender, R.id.EditTextPetAddOptions);*/
        db.close();
    }
};

我仍在尝试学习所有这些东西,并且通过查看大量的在线教程,示例和Google文档,我的大脑已经消失了。如果有人能告诉我如何做到这一点,或者指导我参加一个barney风格的教程,让我了解发生了什么,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

R.id.fieldName是对Activity中项目的数字引用(前提是它是布局的一部分)。

你需要调用findViewById(R.id.fieldName)来获取它的参考。你还需要将它转换为正确的视图类型(在你的情况下为EditText),然后在整个事情上调用getText()。toString()。

全部放在一起......

EditText myField = (EditText)findViewById(R.id.userName); //assuming you have a field named userName in your XML

String userNameValue = myField.getText().toString();

哦,欢迎来到Stack ...不要忘记将答案标记为正确,并在有用时将其投票。

答案 1 :(得分:0)

如果你使用R.id.name,你实际上使用Android使用的内部生成的int。您需要您的微调器具有的原始数据。

我建议您在Spinner中使用getItem和getItemId。如果您使用的是SimpleAdapter,则可以使用getItemId获取项目的ID。

getItem的实现取决于您。我通常使用BaseAdapter,或者在Spinners,ArrayAdapter的情况下,它有几种方便的方法。

使用EditText,您需要将getText()调用到EditText。