Android 带有共享首选项的自定义切换按钮

Android 带有共享首选项的自定义切换按钮,android,button,sharedpreferences,togglebutton,Android,Button,Sharedpreferences,Togglebutton,我正在尝试设置一个自定义切换按钮,其中我使用一个Imagebutton和两个不同的图像来显示切换的状态。现在,我可以切换图片收听点击: togglebtn = (ImageButton) findViewById(R.id.togglebtn); togglebtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { to

我正在尝试设置一个自定义切换按钮,其中我使用一个Imagebutton和两个不同的图像来显示切换的状态。现在,我可以切换图片收听点击:

togglebtn = (ImageButton) findViewById(R.id.togglebtn);
        togglebtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                togglebtn.setImageResource(R.drawable.offbtn);
            }
        });
但是我不知道如何使用sharepreferences来保存用户选择的状态。我想使用布尔值,但我发现的所有布尔值的shareprefences示例都是特定于复选框的,而不是类似的东西

如何保存切换按钮的状态?

尝试类似的操作(从头部编码)


我建议您保存活动的onPause(),而不是onClick,因为我认为这很昂贵

除了@anthe关于首选项的评论之外,您不应该使用ImageButton

有用于布尔选项实现的切换按钮、复选框和开关。你应该检查一下。
您也不应该以编程方式更改drawable。您可以/应该在按下和未按下的情况下设置选择器可绘制XML,并在布局上设置它们。

仍然是一个切换按钮。无需重新编写现有功能。默认情况下,ToggleButton上提供了可绘制的更改功能,因此我建议您扩展它,只需担心代码中真正自定义的部分。
editor = sharedPreferences.edit();

boolean b = true; 
editor.putBool("myBoolean", b);
editor.commit();