我想在共享首选项中存储一个布尔数组,我想稍后访问数组元素。任何人都可以帮助我吗?谢谢你。
答案 0 :(得分:6)
存储阵列
public boolean storeArray(Boolean[] array, String arrayName, Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(arrayName +"_size", array.length);
for(int i=0;i<array.length;i++)
editor.putBoolean(arrayName + "_" + i, array[i]);
return editor.commit();
}
加载数组
public Boolean[] loadArray(String arrayName, Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
int size = prefs.getInt(arrayName + "_size", 0);
Boolean array[] = new Boolean[size];
for(int i=0;i<size;i++)
array[i] = prefs.getBoolean(arrayName + "_" + i, false);
return array;
}
答案 1 :(得分:2)
存储您的数组全局设置复选框值
public boolean setCheckboxarray(Context mContext,Boolean[] array) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(CHECKBOXARRAY, array.length);
for(int i=0;i<array.length;i++)
editor.putBoolean(CHECKBOXARRAY + i, array[i]);
return editor.commit();
}
全局加载数组获取复选框值
public Boolean[] getCheckboxarray(Context mContext) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
int size = prefs.getInt(CHECKBOXARRAY, 0);
Boolean array[] = new Boolean[size];
for(int i=0;i<size;i++)
array[i] = prefs.getBoolean(CHECKBOXARRAY+ i, false);
return array;
}
答案 2 :(得分:0)
使用复选框将ArrayList全局存储在sharedpreferences中。
public boolean saveCheckboxarray(Context mContext, ArrayList<Boolean> array) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(CHECKBOXARRAY, array.size());
for(int i=0;i<array.size();i++)
editor.putBoolean(CHECKBOXARRAY + i,array.get(i));
return editor.commit();
}
在sharedpreferences状态中全局加载ArrayList。
public ArrayList<Boolean> getCheckboxarray(Context mContext) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
int size = prefs.getInt(CHECKBOXARRAY, 0);
ArrayList<Boolean> getArray=new ArrayList<Boolean>();
for(int i=0;i<size;i++)
getArray.add(i,prefs.getBoolean(CHECKBOXARRAY + i, false));
return getArray;
}