Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SharedReferences未保存或加载我的数据_Android_Android Sharedpreferences - Fatal编程技术网

Android SharedReferences未保存或加载我的数据

Android SharedReferences未保存或加载我的数据,android,android-sharedpreferences,Android,Android Sharedpreferences,这是我的savaData和loadData方法,用于保存和加载数据 public void saveData(){ SharedPreferences sharedPreferences= getActivity().getSharedPreferences("SubjectTitle", Context.MODE_PRIVATE); SharedPreferences.Editor editor=sharedPreferences.edit();

这是我的savaData和loadData方法,用于保存和加载数据

 public void saveData(){
        SharedPreferences sharedPreferences= getActivity().getSharedPreferences("SubjectTitle", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor=sharedPreferences.edit();
        int i=0,n;
        n=addArray.size();
        for(Bunk b: addArray) {
            editor.putString("Title"+i, b.getTitle());
            editor.putInt("No_of_bunk"+i, b.getBunk_remain());
            editor.putFloat("pre_of_att"+i, b.getPrecentageAtt());
            i++;
        }
        editor.putInt("size_of_data",n);
        editor.apply();
        Toast.makeText(getActivity(),"data saved",Toast.LENGTH_SHORT).show();

    }
    public ArrayList<Bunk> loadData(){
        SharedPreferences sharedPreferences= getActivity().getSharedPreferences("SubjectTitle", Context.MODE_PRIVATE);
        int n=sharedPreferences.getInt("size_pf_data",Default);
        String loadTitle;
        int loadBunk;
        float loadAtt;
        for(int i=0;i<n;i++){
            loadTitle=sharedPreferences.getString("Title"+i,DEFAULT);
            loadBunk=sharedPreferences.getInt("No_of_bunk"+i,Default);
            loadAtt=sharedPreferences.getFloat("pre_of_att"+i,def_ault);
            addArray.add(new Bunk(loadTitle,loadBunk,loadAtt));
        }
      return addArray;
    }

首先,使用编辑器.commit()在输入数据后保存数据,或直接保存:
editor.putString(“Title”+i,b.getTitle()).commit()

其次,我认为您的想法是错误的,共享首选项更适合设置或少量数据,在您的情况下,您应该使用SQLite来保存大量数据

欢迎来到堆栈溢出!你可以选择第一个,学习一个好的问题,然后创造一个新的答案。这使我们更容易帮助你。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup perent, Bundle savedInstanceState) {

    super.onCreateView(inflater, perent, savedInstanceState);
    View v = inflater.inflate(R.layout.fragment_main, perent, false);
        show=(ListView)v.findViewById(android.R.id.list);
    addArray=loadData();
    adapter=new BunkAdapter(addArray);
    show.setAdapter(adapter);
    return v;
}