gpt4 book ai didi

android - 偏好选择始终保持默认

转载 作者:行者123 更新时间:2023-11-29 18:21:50 25 4
gpt4 key购买 nike

我有一个小问题,每次我尝试更改程序中的首选项时,它们在 Activity 中都不会改变,它们只是保持默认值。

public class Reciever extends BroadcastReceiver {
boolean smsOn = false;
String smsColor = new String ("Green");
Uri smsSound;
String smsVibrate = new String ("Normal");

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(arg0);

smsOn = pref.getBoolean(Preferences."PREF_SMS_ON", false);
smsColor = pref.getString(Preferences.SMS_PREF_COLOR, "Green");
smsSound = Uri.parse(pref.getString(Preferences.SMS_PREF_SOUND, "Silent"));
smsVibrate = pref.getString(Preferences.SMS_PREF_SOUND, "Normal");

//all variable remain default value verified through debugger

NotificationManager mNotificationManager = (NotificationManager) arg0.getSystemService(Context.NOTIFICATION_SERVICE);
if (arg1.getAction().equals(ACTION)){
if(smsOn == true){....... if checkbox is checked smsOn still remains false
}

prefenceactivity类

public class Preferences extends PreferenceActivity implements OnPreferenceClickListener{
public static final String PREF_SMS_ON = "PREF_SMS_ON";
public static final String VIBRATE_ON_CALL1 = "VIBRATE_ON_CALL1";
public static final String SMS_PREF_COLOR = "SMS_PREF_COLOR";
public static final String SMS_PREF_SOUND = "SMS_PREF_SOUND";
public static final String SMS_PREF_VIB = "SMS_PREF_VIB";
}

xml文件(我就复制一个)

    <CheckBoxPreference 
android:key="PREF_SMS_ON"
android:title="SMS Notifications"
android:summary="Turn On SMS Notifications"
android:defaultValue="false">
</CheckBoxPreference>

我不明白它出了什么问题,这一切看起来对我来说应该有用

最佳答案

嗯,您的代码中存在一些问题。这tutorial有利于创建偏好。此外,如果您想更改 PreferenceActivity 之外的首选项,您应该使用编辑器例如:

Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit();
e.putBoolean(Preferences."PREF_SMS_ON", true);
e.commit();

希望对你有帮助

回复您的评论

好吧,问题是您正在使用 PreferenceActivity,如 here 中的文档所示它用于显示偏好的视觉风格。此外,如所示 here ,“当用户与之交互时,首选项将自动保存到 SharedPreferences”。它给我的印象是您想在 PreferenceActivity 之外更改首选项(这没有错),但您说那不是您想要做的。

但是,我确实注意到您的 PreferenceActivity 没有从您的资源文件中加载首选项,为此您需要添加 addPreferencesFromResource(R.xml.settings);例如,在您的 onCreate 中。但是,正如我所说,只有当用户直接与此 Activity 交互时,您的偏好才会自动更改。希望对您有所帮助。

关于android - 偏好选择始终保持默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973395/

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