String数组的共享首选项

时间:2013-11-28 10:41:30

标签: android sharedpreferences imageurl

我想知道如何能够从我的共享首选项(我已经设置)中获取字符串,然后将其输出到String数组,以便我的Image Fetcher能够读取它(它必须是一个数组供它阅读)。

在一项活动中,我正在设置共享偏好设置:

        case R.id.FavouriteWallpaper:

        SharedPreferences prefs;
        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("imgUrl", mImageUrl);
        editor.commit();

    }
    return super.onOptionsItemSelected(item);
}

在另一个课程中,我从共享首选项中获取字符串:

            SharedPreferences prefs;
        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        prefs.getString("imgUrl", null); //Output imgUrl to String Array somehow


 // I would like my image fetcher to read a string array that has been fetched from shared preferences. 

mImageFetcher.loadImage(Fragment3.imgUrl[position
                - mNumColumns], imageView);

        return imageView;
    }

2 个答案:

答案 0 :(得分:0)

你可以使用for循环来获取字符串

... examole

     SharedPreferences prefs;
        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("imgUrl", mImageUrl);


for(int i=0; i<arraylist.size(); i++)
{
 editor.putString("imgUrl"+i, arraylist.get(i).toString());

}
 editor.commit();

答案 1 :(得分:0)

您无法将数组真正保存到SharedPrerences,但您可以将所有网址存储在CSV(逗号分隔值)等字符串中,并将其存储在sharePreferences中。你可以编写一个有2种方法的经理。一个用于将数组转换为CSV并存储,第二个用于获取CSV并将其转换为数组。 第二种方法是像JSONArray一样保存数据,你还需要编写一个管理器,它也有2个方法,一个用于将数组转换为JSONArray并将其存储在Shared Preferences中,第二个方法是将jsonArray转换为你的阵列。