كيفية تحرير قيمة ListPreference من كود جافا في Android
-
17-09-2020 - |
سؤال
أعرف كيفية تغيير قيمة أ CheckBoxPreference
, ، لكن لا يمكنني تشغيله من أجل ListPreference
.
إليك كيفية إنشاء شاشة التفضيلات الخاصة بي:
- واحد
CheckBox
للافتراضي - أ
ListPreference
لتحديد لون آخر غير اللون الافتراضي.
ال ListPreference
يتم تعريفه باستخدام المفتاح "titleColor"، كما يلي:
CharSequence[] entries = { "Dark grey", "Light grey", "Light red", "Red" };
CharSequence[] entryValues = { "#4c4c4c", "#b5b5b5", "#ab6a68", "#962622" };
final ListPreference color = (ListPreference) findPreference("titleColor");
color.setEntries(entries);
color.setEntryValues(entryValues);
الآن، عندما أختار لونًا أفعل هذا:
color.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
System.out.println("In the onClick method");
System.out.println("change title color");
Editor editor2 = defaultColor.getEditor();
editor2.putBoolean("defaultColor", false);
editor2.commit();
return true;
}
});
ويبدو أن هذا يعمل، على الرغم من أنني لست متأكدًا من القيام بذلك بشكل صحيح.
لقد كنت أحاول الآن القيام بشيء مماثل عندما أحدد اللون الافتراضي، لكن لا يمكنني جعل القائمة تقوم بإلغاء تحديد كل شيء أو تحديد اللون الذي سيكون اللون الافتراضي.
اي فكرة؟
المحلول
في حالة CheckBox
:
إذا كان لديك اللون الافتراضي CheckBox
سيتم إصلاحه باستخدام android:dependency
, ، لكن بما أنك لا تملكه، أعتقد أن هذه هي الطريقة الوحيدة.
ذات صلة ب ListPreference
, ، مشابه تمامًا:
ListPreference lp = (ListPreference)findPreference("listPreference_key");
lp.setValue("");
يمكنك التحقق من مستندات لمعرفة الطرق المتاحة.
لا تنتمي إلى StackOverflow