Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 离开应用程序或返回活动后如何保存勾选复选框?_Android - Fatal编程技术网

Android 离开应用程序或返回活动后如何保存勾选复选框?

Android 离开应用程序或返回活动后如何保存勾选复选框?,android,Android,离开应用程序或返回活动后,如何保存复选框中的勾号 这是我的密码: ch = (CheckBox) rootView.findViewById(R.id.checkBox62); ch.setOnClickListener(new View.OnClickListener() { private String PREFRENCES_NAME; @Override public void onClick(View v) {

离开应用程序或返回活动后,如何保存复选框中的勾号

这是我的密码:

        ch = (CheckBox) rootView.findViewById(R.id.checkBox62);
    ch.setOnClickListener(new View.OnClickListener() {
        private String PREFRENCES_NAME;

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        if(ch.isChecked())
                {
            SharedPreferences pref = getActivity().getSharedPreferences(PREFRENCES_NAME,0);
            ch.setChecked(pref.getBoolean("cbx62_ischecked" ,true));
            pref.edit().putBoolean("check",true).commit();

            SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
            ch.setChecked(settings.getBoolean("check", true));
            }
        {
        }}
    });
    return rootView;
 }
}
任何帮助都将不胜感激

编辑

这是我的完整代码:

public class TestingFragment extends Fragment {

public TestingFragment(){}
private CheckBox ch;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_testing, container, false);


    ch = (CheckBox) rootView.findViewById(R.id.checkBox62);
    ch.setOnClickListener(new View.OnClickListener() {
        private String PREFRENCES_NAME;

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        if(ch.isChecked())
                {
            SharedPreferences pref = getActivity().getSharedPreferences(PREFRENCES_NAME,0);
            ch.setChecked(pref.getBoolean("cbx62_ischecked" ,true));
            pref.edit().putBoolean("check",true).commit();               

            }
        {
        }}
    });
    return rootView;
 }
}
我已经删除了重复的代码
ch.setChecked(pref.getBoolean(“cbx62_ischecked”,true))我已经再次测试了,但仍然不起作用。

在OnCreate()方法中定义

SharedPreferences pref = getActivity().getSharedPreferences("Pref",0);  // better make it global
现在单击复选框时

ch.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                    if(pref.getBoolean("check", false))
                    {
                        ch.setChecked(false);
                        pref.edit().putBoolean("check", false).commit();

                    } else {
                        ch.setChecked(true);
                        pref.edit().putBoolean("check", true).commit();
                    }
        }
    });
并在onResume()中编写以下代码


你现在面临什么问题?你多次定义共享首选项吗?当我退出应用程序并返回或移动到一个活动然后返回此活动时,似乎不会在复选框中保存勾号。你为什么调用ch.setChecked(settings.getBoolean(“check”,true));两次?请在插入共享首选项的位置添加代码。只需键入Resume并按
Ctrl
+
Space
。这是一个覆盖的方法
       if(pref.getBoolean("check", false))
                    {
                        ch.setChecked(false);

                    } else {
                        ch.setChecked(true);
                    }