Android: панель рейтингов — Как добавить рейтинг в базу данных?

#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() Большое спасибо, я доволен, что теперь это работает!