Всем привет! У меня такой вопрос почему не сохраняется RatingBar так как я сделал оценку, но после выхода из приложения у меня снова оценка 1, а не 4, то есть не сохраняет!
Можно это реализовать так:
// Java 7
private final String KEY_RATING = "KEY_RATING";
private final String RATING_PREFS_FILE = "RATING_PREFS_FILE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
RatingBar ratingBar = (RatingBar) findViewById(R.id.myRatingBar);
SharedPreferences prefs = getSharedPreferences(RATING_PREFS_FILE, Context.MODE_PRIVATE);
ratingBar.setRating(prefs.getFloat(KEY_RATING, 0));
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar1, float rating, boolean fromUser) {
prefs.edit().putFloat(KEY_RATING, rating).apply();
}
});
}
//Java 8
private final String KEY_RATING = "KEY_RATING";
private final String RATING_PREFS_FILE = "RATING_PREFS_FILE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
RatingBar ratingBar = (RatingBar) findViewById(R.id.myRatingBar);
SharedPreferences prefs = getSharedPreferences(RATING_PREFS_FILE, Context.MODE_PRIVATE);
ratingBar.setRating(prefs.getFloat(KEY_RATING, 0));
ratingBar.setOnRatingBarChangeListener((ratingBar1, rating, fromUser) ->
prefs.edit().putFloat(KEY_RATING, rating).apply());
}
Также советую почитать про SharedPreferences вот тут.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей