因为我是俄罗斯人,所以我的英语非常非常糟糕。
在我的应用程序中,我使用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();
}
});