2012-01-04 5 views
1

Я пытаюсь выяснить, как захватить данные из формы с помощью EditText & Spinner's и вставить его в базу данных SQLite. Я могу написать жестко закодированные атрибуты, но когда я пытаюсь использовать R.id.fieldName, он выдает ошибку из-за того, что является целым типом a.Вставка данных 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

Удивительный, это сделало это для меня. Через несколько секунд я смог реализовать это и вернуть меня в нужное русло. Благодаря! О том, чтобы начать пытаться выяснить, что spinner вещь sfratini говорит о ниже с помощью getitem, getitemid. – higabyte

+0

Вас приветствуют. Скручиватель немного сложнее, вам следует обратиться к хорошей онлайн-ссылке о том, как с ним взаимодействовать. Например, например: http://www.java-samples.com/showtutorial.php?tutorialid=1517 –

+0

Фактически, он работал с той же настройкой, что и выше, только что использовал Spinner (Spinner) Vice EditText (EditText). Еще раз спасибо. – higabyte

0

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

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

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

И с помощью EditText вам нужно вызвать getText() в EditText.

Смежные вопросы