Мой английский очень-очень ПЛОХОЙ, потому что я русский.:)
В моем приложении я использую SharedPreferences
для хранения своих значений. Данные сохраняются в SharedPreferences
при запуске приложения и после выхода из него. И все работает нормально, пока я не перезагружу свое устройство. После перезагрузки я не могу использовать SharedPreferences
, и приложение не читает и не записывает данные оттуда. Я использую функцию getPreferences(0)
для получения настроек из папки данных приложения. Я также пытался использовать getSharedPreferences(myPref, MODE_PRIVATE)
, но эффект тот же. Спасает только одно решение -очистки данных приложения после перезагрузки устройства.
favoriteButton = (ImageView) findViewById(R.id.favorite_button);
SharedPreferences favorite = getSharedPreferences("Favorites", MODE_PRIVATE);
if(favorite.getString(""+Loader.currentVideo.getTitle()+"", "") == "true") {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_selected));
} else {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_empty));
}
favoriteButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SharedPreferences favorite = getSharedPreferences("Favorites", MODE_PRIVATE);
SharedPreferences.Editor editor = favorite.edit();
if(favorite.getString(""+Loader.currentVideo.getTitle()+"", "") == "true") {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_empty));
Loader.favoriteVideos.remove(Loader.currentVideo);
editor.remove(""+Loader.currentVideo.getTitle()+"");
} else {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_selected));
Loader.favoriteVideos.add(Loader.currentVideo);
editor.putString(""+Loader.currentVideo.getTitle()+"", "true");
}
editor.commit();
}
});