Вставить данные EditText и Spinner в SQLite? - PullRequest
1 голос
/ 04 января 2012

Я пытаюсь выяснить, как получить данные из формы с помощью 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. Если кто-то может показать мне, как это сделать, или направить меня к учебнику по барни-стилю, который поможет мне понять, что происходит, это будет с благодарностью.

Ответы [ 2 ]

1 голос
/ 04 января 2012

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 голосов
/ 04 января 2012

Если вы используете R.id.name, вы на самом деле используете внутренне сгенерированный int, который использует Android.Вам нужны необработанные данные, которые есть у вашего счетчика.

Я предлагаю вам поиграть с getItem и getItemId в вашем Spinner.Если вы используете SimpleAdapter, вы можете рассчитывать на получение идентификатора вашего элемента с помощью getItemId.

Реализация getItem зависит от вас.Я обычно использую BaseAdapter или, в случае Spinners, ArrayAdapter, который имеет несколько удобных методов.

И с EditText вам нужно вызвать getText () для EditText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...