2012-01-04 10 views
1

私はEditText & Spinnerを使ってフォームからデータをキャプチャする方法を理解しようとしています。それをSQLiteデータベースに挿入します。私はハードコードされた属性を記述することができますが、R.id.fieldNameを使用しようとすると、IntegerのStringであるためにエラーがスローされます。EditText&Spinnerデータを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(); 
    } 
}; 

私はまだ、すべてこのようなものを学ぶためにしようとしていると私の脳は、オンラインチュートリアル、例とGoogleドキュメントの茄多を見てから揚げています。もし誰かが私にこれを行う方法を教えたり、何が起こっているのかを理解するためにそれを打ち砕いたバニースタイルのチュートリアルに私を向けると、それは非常に高く評価されます。

答えて

1

R.id.fieldNameは、アクティビティ内のアイテムへの数値参照です(レイアウトの一部であることが条件です)。

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

ああ、正しいとしてアップ投票彼らが参考にしているときにそれらを答えをマークすることを忘れないでください...スタックにお待ちしております。

+0

すごく、それは私にとってそれでした。数秒で、私はこれを実装し、私を軌道に戻すことができました。ありがとう! sfratiniがgetitem、getitemidのもので下に話していることをスピナーの事を理解しようとすることを開始しようとする。 – higabyte

+0

大歓迎です。スピナーはちょっと難しいです、あなたはそれと対話する方法の良いオンラインリファレンスを参照する必要があります。このような例:http://www.java-samples.com/showtutorial.php?tutorialid=1517 –

+0

実際には、上記と同じ設定で動作しています。ちょうどSpinner(Spinner)のEditText(EditText)を使用しました。再度、感謝します。 – higabyte

0

R.id.nameを使用している場合、実際にはAndroidが使用する内部生成intを使用しています。あなたのスピナーが持っている生データが必要です。

私はあなたのスピナーでgetItemとgetItemIdを試してみることをお勧めします。 SimpleAdapterを使用している場合は、getItemIdを使用してアイテムのIDを取得することができます。

getItemの実装はあなた次第です。私は通常、BaseAdapterを使うか、いくつかの便利なメソッドを持つSpinners、ArrayAdapterの場合は使用します。

EditTextでは、EditText()を呼び出す必要があります。

関連する問題