将EditText和Spinner数据插入SQLite?

我正在尝试弄清楚如何使用EditText和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风格的教程,让我了解发生了什么,我们将不胜感激。

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 …不要忘记将答案标记为正确,并在有用时将其投票。

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

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

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

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