2012-01-04 68 views
1

我试图找出如何使用EditText从表单中捕获数据,并将其插入到SQLite数据库中。我能够编写硬编码的属性,但是当我尝试使用R.id.fieldName时,由于是一个Integer而产生一个错误,因为它是一个String。插入EditText和微调数据到SQLite?

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(); 
    } 
}; 

我还在努力学习所有这些东西,我的大脑是从看在线教程,范例和谷歌文档过多油炸。如果任何人都可以告诉我如何做到这一点,或指导我到一个巴恩尼风格的教程,让我知道发生了什么,它将不胜感激。

回答

1

R.id.fieldName是活动中项目的数字引用(只要它是布局的一部分)。

您需要调用findViewById(R.id.fieldName)来获取refererene。您还需要将其转换为正确类型的视图(在您的情况下为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(); 

哦,欢迎栈......不要忘了答案标记为正确的和已投他们时,他们是有帮助的。

+0

太棒了,它为我做了。在几秒钟内,我就能够实现这一点,并让我重新走上正轨。谢谢!即将开始尝试找出spinner的事情,sfratini正在谈论getitem,getitemid的东西。 – higabyte 2012-01-05 00:08:14

+0

非常欢迎。微调器有点棘手,你应该参考一个关于如何与它交互的很好的在线参考。像这样一个例子:http://www.java-samples.com/showtutorial.php?tutorialid=1517 – 2012-01-05 01:30:52

+0

其实,它使用与上面相同的设置,只使用微调(微调)副EditText(EditText)。再次感谢。 – higabyte 2012-01-05 01:31:50

0

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

我建议你在你的Spinner中使用getItem和getItemId。如果您正在使用SimpleAdapter,则可以期望通过getItemId获取您的物品的ID。

getItem的实现取决于您。我通常使用BaseAdapter或Spinners,ArrayAdapter,它有几个方便的方法。

和EditText你需要调用getText()到EditText。