安卓使用SharedPreferences和bundle存储用户数据
SharedPreferences存储
SharedPreferences 是 Android 系统提供的一个通用的数据持久化框架,用于存储和读取 key-value 类型的原始基本数据对。
目前仅支持 boolean、float、int、long 和 string 等基本类型的存储,对于自定义的复合数据类型,是无法使用 SharedPreferences 进行存储的。
存储方式:
SharedPreferences setInfo= getActivity().getSharedPreferences("config",Context.MODE_MULTI_PROCESS);//config是存储的key
setInfo.edit()
.putString("trait",persion.getTrait()+"")
.putString("idName",persion.getIdName())
.putString("id",persion.getId())
.putString("fanNum", persion.getFanNum())
.putString("followNum", persion.getFollowNum())
.putString("likeNum", persion.getLikeNum())
.commit();
读取方式:
SharedPreferences sharedPreferences= getActivity().getSharedPreferences("config", Context.MODE_PRIVATE);
String str=sharedPreferences.getString("idName","");
sharedPreference可以被覆盖,且一旦存储会一直存在,除非将app卸载。
bundle存储
在做activity之间或者与Fragment之间的跳转的时候可以使用bundle传递数据,并且bundle可以存储自定义的数据,在这里我定义的person类,通过bundle传递,在这里我做了fragment之间的切换。
bundle.putSerializable("persion",persion);
FragmentManager fragmentManager = getFragmentManager();
SettingFragment sf=new SettingFragment();
sf.setArguments(bundle);
fragmentManager.beginTransaction().replace(R.id.fl_main,sf).commit();
读取数据:
Bundle bundleId=getArguments();
user=(user) bundleId.getSerializable("persion");