如何在Android中的共享首选项中添加布尔数组

时间:2014-11-26 22:22:34

标签: android android-activity

我想在共享首选项中存储一个布尔数组,我想稍后访问数组元素。任何人都可以帮助我吗?谢谢你。

3 个答案:

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