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