在片段中保存首选项

时间:2014-06-08 15:14:05

标签: java android checkbox fragment preferences

我有一个包含29个复选框的片段,我想保存那些(如果他们是否被选中)的偏好,这样当我重新打开应用程序时,是否选中了复选框(取决于之前的选项)使用)

我已经实现了sharedPreferences,但仍然无法保存它们。当我重新打开应用程序时(或当我更改片段并返回时),之前选中的复选框将被取消选中(如重置)。

我是Android编程的新手,所以请原谅我的noobyness。

这是我的fragment.java

public class PresencasFragment extends Fragment implements OnClickListener {

CheckBox aula1;
(...)
CheckBox aula29;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_presencas, container, false);

    aula1 = (CheckBox) rootView.findViewById(R.id.aula1);
    (...)
    aula29 = (CheckBox) rootView.findViewById(R.id.aula29);

    loadSavedPreferences();

    return rootView;
}

private void loadSavedPreferences() {
    // TODO Auto-generated method stub
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());

    boolean aula1Val = sharedPreferences.getBoolean("CheckBox_Value1", false);
    (...)
    boolean aula29Val = sharedPreferences.getBoolean("CheckBox_Value29", false);

    if (aula1Val){
        aula1.setChecked(true);}
    else{
        aula1.setChecked(false);}

    (...)

    if (aula29Val){
        aula29.setChecked(true);}
    else{
        aula29.setChecked(false);}
}


private void savePreferences(String key, boolean value){
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean(key, value);
    editor.commit();
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(aula1.isChecked()) savePreferences("CheckBox_Value1",aula1.isChecked());

    (...)

    if(aula29.isChecked()) savePreferences("CheckBox_Value29",aula29.isChecked());
}

那么,我做错了什么?

1 个答案:

答案 0 :(得分:1)

为什么在使用专为此目的而设计的PreferenceFragment时,您有自己的片段? (或API级别11下的PreferenceActivity)

它会自动执行您的操作。

点击此链接了解详情:http://android-er.blogspot.hu/2012/07/example-of-using-preferencefragment.html