我正在尝试保存与用户按下喜欢的明星时添加到SharedPreferences的电影相关的不同信息数组,如喜欢的电影列表,然后我将使用该列表对电影海报列表视图显示进行排序屏幕。
首选项变量:
preferences = getContext().getSharedPreferences("favorites_list", Context.MODE_PRIVATE);
这是我在用户按下收藏夹按钮时将电影(或删除)添加到列表的位置:
ib = (ImageButton) rootView.findViewById(R.id.favorite);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!favoriteState) {
ib.setBackgroundResource(R.drawable.starpressed);
favoriteState = true;
SharedPreferences.Editor preferencesEditor = preferences.edit();
preferencesEditor.putStringSet(movieInfo[1], new HashSet<String>(Arrays.asList(movieInfo)));
preferencesEditor.commit();
}else{
ib.setBackgroundResource(R.drawable.star);
favoriteState = false;
SharedPreferences.Editor preferencesEditor = preferences.edit();
preferencesEditor.remove(movieInfo[1]);
preferencesEditor.commit();
}
}
});
这里是我想从SharedPreferences获取数组的地方,但我想在那里获得所有内容,而不仅仅是基于我设置的keyValue的一些数组。 这是我想要在SharedPreferences中的favorites_list中获取所有数据的地方:
private void updateMovies() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
String preference = prefs.getString(getString(R.string.pref_sortby_key), getString(R.string.pref_sortby_default));
if(preference.toLowerCase().equals("favorites")){
SharedPreferences preferences = getContext().getSharedPreferences("favorites_list", Context.MODE_PRIVATE);
}else{
new FetchMoviesTask().execute(baseUrl+preference.toLowerCase()+apiKey, "i");
}
}
我不确定我是否正确插入它们,有没有办法检查androidStudio? 提前感谢您的帮助。