有人能告诉我如何将自定义Serializable
对象列表保存到SharedPreference
中吗?我是安卓新手,我想把ArrayList<Contact> list
保存到共享首选项中。
public class MainActivity extends SherlockFragmentActivity {
PlaceSlidesFragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
public static final String TAG = "detailsFragment";
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main,
container, false);
mAdapter = new PlaceSlidesFragmentAdapter(getActivity()
.getSupportFragmentManager());
mPager = (ViewPager) view.findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mIndicator = (CirclePageIndicator) view.findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
((CirclePageIndicator) mIndicator).setSnap(true);
mIndicator
.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
Toast.makeText(MainActivity.this.getActivity(),
"Changed to page " + position,
Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrolled(int position,
float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
return view;
}
}
发布于 2013-05-17 19:31:59
另一个很好的解决方案是使用GSON。下面是一个例子:
private static final String MAP = "map";
private static final Type MAP_TYPE = new TypeToken<Map<MyObjA, MyObjB>>() {}.getType();
private static SharedPreferences prefs = MyApplication.getContext().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
private static Map<MyObjA, MyObjB> myMap;
public static void saveMap (Map<MyObjA, MyObjB> map) {
SharedPreferences.Editor editor = prefs.edit();
editor.putString(MAP, new Gson().toJson(map));
editor.commit();
myMap = map;
}
public static Map<MyObjA, MyObjB> loadMap() {
if (myMap == null) {
myMap = new Gson().fromJson(prefs.getString(MAP, null), MAP_TYPE);
}
return myMap;
}
有关gson的更多信息,请访问http://code.google.com/p/google-gson/
很简单,对吧?;)
保重
发布于 2013-02-05 19:10:34
最简单的出路?
转换为JSON
并将其另存为String
。
发布于 2013-02-05 19:01:46
如果它已经序列化了,那么你可以直接把它放进去。这篇文章中被接受的答案将为你指明方向:Save ArrayList to SharedPreferences
https://stackoverflow.com/questions/14705860
复制相似问题