2012-01-04 71 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。