My English very very BAD cause i'm Russian. :)
In my application I use SharedPreferences
to store my values.
The data has stored in the SharedPreferences
, when application is running, and after exit from it. And everything works fine until I reboot my device. After reboot I can't use SharedPreferences
, and the application doesn't read and write the data from there.
I use the function getPreferences(0)
to get preferences from application data folder.
I also tried to use the getSharedPreferences(myPref, MODE_PRIVATE)
, but the effect is the same. Saves only one solution - data cleaning application after reboot device.
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();
}
});
Thank you all for your advice! But I had solved this problem! I hope this helps someone, here's a solution.
Before you request a value SharedPreferences, check the availability of keys!!!
SharedPreferences sharedpreferences = getSharedPreferences("SharedPreferences", MODE_PRIVATE); sharedpreferences.contains("key") --- check key!
favoriteButton = (ImageView) findViewById(R.id.favorite_button);
SharedPreferences favorite = getSharedPreferences("Favorites", MODE_PRIVATE);
String tempFav = "";
if(favorite.contains(""+Loader.currentVideo.getTitle()+"")) {
tempFav = favorite.getString(""+Loader.currentVideo.getTitle()+"", "");
}
if(tempFav.equalsIgnoreCase("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();
String tempCFav = "";
if(favorite.contains(""+Loader.currentVideo.getTitle()+"")) {
tempCFav = favorite.getString(""+Loader.currentVideo.getTitle()+"", "");
Log.d(Loader.currentVideo.getTitle());
Log.d(tempCFav);
}
if(tempCFav.equals("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();
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With