gpt4 book ai didi

java - 如何在 Android 中使用共享首选项?

转载 作者:行者123 更新时间:2023-12-01 13:47:21 27 4
gpt4 key购买 nike

我正在 Android 中使用 SQLite 实现切换按钮。我想将切换按钮值保存在共享首选项中,并将共享首选项值存储在 SQLite 中。当我运行应用程序时,我收到切换按钮的空指针异常。

我不知道如何在共享首选项中存储 boolean 值。这是我的代码和日志目录。

这是我的切换按钮代码

toggleButton_Addto_Contacts = (ToggleButton) findViewById(R.id.toggleButton_Add_To_Contacts);

toggleButton_Addto_Contacts.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub


if(isChecked)
{
System.out.println("Toggle Button Is On");

SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("YES", true); // value to store
strBooleanValue=sharedPref.getBoolean("YES",true);
strToggleVlaue=String.valueOf(strBooleanValue);
System.out.println("Toggle Button Value Is =" + strToggleVlaue);
editor.commit();

}
else
{

System.out.println("Toggle Button Is Off");
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("NO", false); // value to store
strBooleanValue=sharedPref.getBoolean("NO", false);
strToggleVlaue=String.valueOf(strBooleanValue);
System.out.println("Toggle Button Value Is =" + strToggleVlaue);
editor.commit();

}
}
});



11-28 15:13:26.054: E/AndroidRuntime(707): FATAL EXCEPTION: main
11-28 15:13:26.054: E/AndroidRuntime(707): java.lang.NullPointerException
11-28 15:13:26.054: E/AndroidRuntime(707): at com.lead_management_project.New_Lead_Activity5$5.onCheckedChanged(New_Lead_Activity5.java:172)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.widget.CompoundButton.setChecked(CompoundButton.java:124)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.widget.ToggleButton.setChecked(ToggleButton.java:69)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.widget.CompoundButton.toggle(CompoundButton.java:86)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.widget.CompoundButton.performClick(CompoundButton.java:98)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.view.View$PerformClick.run(View.java:9080)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.os.Handler.handleCallback(Handler.java:587)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.os.Handler.dispatchMessage(Handler.java:92)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.os.Looper.loop(Looper.java:123)
11-28 15:13:26.054: E/AndroidRuntime(707): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-28 15:13:26.054: E/AndroidRuntime(707): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 15:13:26.054: E/AndroidRuntime(707): at java.lang.reflect.Method.invoke(Method.java:507)
11-28 15:13:26.054: E/AndroidRuntime(707): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-28 15:13:26.054: E/AndroidRuntime(707): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-28 15:13:26.054: E/AndroidRuntime(707): at dalvik.system.NativeStart.main(Native Method)

最佳答案

尝试如下更改,

    if(isChecked)
{
System.out.println("Toggle Button Is On");

SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("YES", true); // value to store
editor.commit();
strBooleanValue=preferences.getBoolean("YES",true);
strToggleVlaue=String.valueOf(strBooleanValue);
System.out.println("Toggle Button Value Is =" + strToggleVlaue);


}
else
{

System.out.println("Toggle Button Is Off");
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("NO", false); // value to store
editor.commit();
strBooleanValue=preferences.getBoolean("NO", false);
strToggleVlaue=String.valueOf(strBooleanValue);
System.out.println("Toggle Button Value Is =" + strToggleVlaue);


}

关于java - 如何在 Android 中使用共享首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262704/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com