从SharedPreferences获取数组

时间:2015-11-02 00:58:43

标签: android arrays sharedpreferences

我正在尝试保存与用户按下喜欢的明星时添加到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? 提前感谢您的帮助。

0 个答案:

没有答案