Java 我的切换中的SharedReferences问题

Java 我的切换中的SharedReferences问题,java,android,sharedpreferences,togglebutton,Java,Android,Sharedpreferences,Togglebutton,我在切换按钮中使用SharedReferences时遇到问题。首先,我声明了我需要什么: public SharedPreferences preferences; public WifiManager wifiManager; ToggleButton wifitoggle; 然后是“行动”onclick 在onCreate中,我报告了以下值: boolean togglewifi = preferences.getBoolean("togglewifi", false); //defau

我在切换按钮中使用SharedReferences时遇到问题。首先,我声明了我需要什么:

public SharedPreferences preferences;
public WifiManager wifiManager;
ToggleButton wifitoggle;
然后是“行动”onclick

在onCreate中,我报告了以下值:

boolean togglewifi = preferences.getBoolean("togglewifi", false);  //default è false
        if (togglewifi) 
        {

            wifitoggle.setChecked(true);
        }
            else
        {
            wifitoggle.setChecked(false);
        }
但当我运行应用程序时,它崩溃了。奇怪的是,logCat什么也没说。没有错误。。我错过什么了吗?感谢您的帮助

试试这个:

SharedReferences sPref=getSharedReferences(首选名称,0);
Editor=sPref.edit();
编辑器.putBoolean(“键”,真/假);
editor.apply();

您需要初始化SharedReference

SharedPreferences sharedPreferences=context.getSharedPreferences(sharedPreferenceName, Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();

在这里,sharedPreferenceName应该是一个名称,您将通过它访问存储的值。如果不匹配,您将无法访问SharedReference中的值。

您绝对确定logcat中没有任何内容吗?尝试筛选错误,很可能您缺少与WifiManager交互的权限。您可以参考这一点。其中
PREFS\u NAME
类似于
静态最终字符串PREFS\u NAME=“MyPreferences”?无论如何:
类型SharedReferences中的putBoolean(String,boolean)方法。编辑器不适用于参数(String,String)
是的,PREFS\u名称类似于静态最终字符串PREFS\u NAME=“MyPreferences”;只有一件事,你的代码必须放在
SharedPreferences.Editor=preferences.edit()上;编辑器.putBoolean(“togglewifi”,true);//值来存储editor.commit()?还是在onCreate中?
SharedPreferences sharedPreferences=context.getSharedPreferences(sharedPreferenceName, Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();