#android #database #sqlite
#Android #База данных #sqlite
Вопрос:
Здесь снова новичок.
Я последовал примеру, приведенному разработчиком Google (и прочитал пару других руководств) о том, как добавить панель оценок в вашу форму / приложение. Однако я не смог найти в сети никаких примеров того, как взять указанный рейтинг и добавить его в качестве значения в вашу базу данных SQLite.
В настоящее время вы можете добавить свой собственный рейтинг, просто введя число в поле EditText. Однако это не идеально, и панель оценок кажется более идеальным решением. Я подозреваю, что это как-то связано с OnClick (), но я не совсем уверен, будучи новичком.
Есть идеи?
Панель оценок:
final RatingBar ratingbar = (RatingBar) findViewById(R.id.ratingbar);
ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(AddBook.this, "New Rating: " rating, Toast.LENGTH_SHORT).show();
}
});
addRow:
db.addRow
(
textFieldOne.getText().toString(),
textFieldTwo.getText().toString(),
textFieldThree.getText().toString(),
textFieldFour.getText().toString(),
textFieldFive.getText().toString(),
textFieldSix.getText().toString()
);
// request the table be updated
updateTable();
Ответ №1:
Давайте предположим, что у вас есть приложение.
Давайте далее предположим, что у вас есть пользователь.
Давайте продолжим в том же духе и предположим, что у вас есть действие в приложении, в котором пользователь будет вводить данные, и что цель состоит в том, чтобы эти данные попали в базу данных SQLite.
Где-то, каким-то образом, пользователь должен указать вам «Пожалуйста, сохраните эти данные». Это может быть с помощью кнопки, или выбора в меню, или выхода из действия (например, onStop()
), или чего угодно. Я буду называть это «триггером».
В вашем EditText
сценарии, когда происходит запуск, вы должны выполнить insert()
или update()
или что-то еще с SQLiteDatabase
содержимым EditText
, полученным через getText()
.
В вашем RatingBar
сценарии, когда происходит запуск, вы должны выполнить insert()
или update()
или что-то еще с SQLiteDatabase
содержимым RatingBar
, полученным через getRating()
.
Комментарии:
1. Очень полезно. Я подозревал, что это так, проблема, с которой я столкнулся, связана с кодом. Я отредактировал, чтобы включить некоторый пример кода. Для восстановления я бы использовал что-то вроде «ratingbar.getRating().toFloat()»?
2. @Wrekaar:
getRating()
возвращаетfloat
.3. Перепробовал все, и внезапно это теперь работает. Оказывается, все, что мне было нужно, это wRiting.getRating() Большое спасибо, я доволен, что теперь это работает!