保存序列化对象列表到共享preferences [英] Saving Serializable Objects List into sharedPreferences

查看:109
本文介绍了保存序列化对象列表到共享preferences的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能告诉我怎么可以保存自定义列表序列化对象插入共享preference ?我是新来的Andr​​oid,我想保存的ArrayList<联系与GT;清单到共享preferences。

 公共类MainActivity扩展SherlockFragmentActivity {
PlaceSlidesFragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;

公共静态最终字符串变量=detailsFragment;

公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
        捆绑savedInstanceState){
    查看查看= inflater.inflate(R.layout.main,
            集装箱,假);

    mAdapter =新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(真正的);

    mIndicator
            .setOnPageChangeListener(新ViewPager.OnPageChangeListener(){
                @覆盖
                公共无效onPageSelected(INT位置){
                    Toast.makeText(MainActivity.this.getActivity(),
                            更改为网页+位置,
                            Toast.LENGTH_SHORT).show();
                }

                @覆盖
                公共无效onPageScrolled(INT位置,
                        浮positionOffset,INT positionOffsetPixels){
                }

                @覆盖
                公共无效onPageScrollStateChanged(INT状态){
                }
            });
    返回查看;
    }



}
 

解决方案

您可以使用 JSON 格式序列化的ArrayList 和对象它包含了,然后保存字符串结果到共享preferences

当你想要得到的数据备份,检索字符串,并使用 JSONArray 来检索每个对象​​并将其添加到一个新的ArrayList

否则,你可以简单地使用对象(输入/输出)流类和使用记录到一个differente文件(写入)

 的FileOutputStream FOS = this.openFileOutput(文件名,MODE_PRIVATE);
最后OutputStreamWriter OSW =新OutputStreamWriter(FOS);
JSONArray阵列=新JSONArray();

//添加你的对象数组

osw.write(与Array.toString());
osw.flush();
osw.close();
 

Can anyone tell me how I can save a list of custom Serializable objects into SharedPreference? I am new To Android and I want to save an ArrayList<Contact> list into shared preferences.

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;
    }



}

解决方案

You can use the JSON format to serialize your ArrayList and the objects it contains, and then store the String result into the SharedPreferences.

When you want to get the data back, retrieve the String and use a JSONArray to retrieve each object and add it to a new ArrayList.

Otherwise you can simply use Object(Input/Output)Stream classes and write it into a differente file using (for writing)

FileOutputStream fos = this.openFileOutput(fileName, MODE_PRIVATE);
final OutputStreamWriter osw = new OutputStreamWriter(fos);
JSONArray array = new JSONArray();

// Add your objects to the array

osw.write(array.toString());
osw.flush();
osw.close();

这篇关于保存序列化对象列表到共享preferences的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆