設定選択常にデフォルトに滞在しています
-
12-11-2019 - |
質問
私は小さな問題を抱えています、私が活動の中で変わらない私のプログラムの好みを変更しようとするたびに、彼らはただデフォルトのものに留まるだけです。
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
}
.
隣接率クラス
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ファイル(1つをコピーするだけです)
<CheckBoxPreference
android:key="PREF_SMS_ON"
android:title="SMS Notifications"
android:summary="Turn On SMS Notifications"
android:defaultValue="false">
</CheckBoxPreference>
.
私はそれが何が間違っているのか理解していない、それはすべて私に働くべきだったように見える
解決
well、あなたのコードにいくつかの問題があります。
このチュートリアルは、設定を作成するのに適しています。
また、PreferenceActivity
の環境設定を変更したい場合は、エディタを使用する必要があります。
例えば:
Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit();
e.putBoolean(Preferences."PREF_SMS_ON", true);
e.commit();
.
私はそれが役立つことを願っています
あなたのコメントへの返信
まあ、ここ環境設定の視覚スタイルを表示するために使用されます。また、ここでは、設定は自動的に保存されます。ユーザーがそれらと対話するときのPreferenceActivity
"。それは私にSharedPreferences
(これは間違っていない)の嗜好を変更したいという印象を与えましたが、あなたはあなたがやりたいことではないと言います。
所属していません StackOverflow