Preference에서
위에 있는 ListPreference의 값(On/Relax/Off) 중에 OFF가 선택되면,
아래의 ListPreference가 비활성화되도록 하려고 합니다.
어떻게 해야 할까요?;
부모 preference가 CheckPreference 일 때는
자식 preference에서 dependency를 사용해서 했었는데
부모 preference가 List이다 보니 어떻게 해야 될지 모르겠습니다.
[ 공지사항 다 읽었습니다! ]
- ListPreference,
- 부모,
- 자식,
- dependency,
- 비활성화
오! ZeRoKiss님 글대로 해서 해결했습니다.
감사합니다^-^
(new OnPreferenceChangeListener(){ 부분에서 자꾸 빨간 줄이 생기길래
(new Preference.OnPreferenceChangeListener(){ 로 했더니 해결됐구요.
if(newValue.toString().equals("OFF"){ 부분에서는
"OFF"대신 그 참값(?) 그... value값을 줬더니 됐습니다.
저 같은 경우, /values/arrays.xml에
<string-array name="AAA">
<item>ON</item>
<item>Relax</item>
<item>OFF</item>
</string-array>
<string-array name="AAA_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
로 한 후에, /xml/pref.xml 에
android:entries="@array/AAA"
android:entries="@array/AAA_values"
로 했었던 터라
if(newValue.toString().equals("2"){ 로 했습니다.
ZeRoKiss 님, 감사합니다




저는 그 문제를 자바 소스 에서 해결 했습니다.
ListPreference downListPreference = (ListPreference) findPreference("subList");
ListPreference listPreference = (ListPreference) findPreference("list");
listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
public boolean onPreferenceChange(Preference preference, Object newValue) {
// newValue.toString(); 했을 경우 ListPreference 의 선택된 값이 출력 됩니다.
if (newValue.toString().equals("OFF") {
downListPreference.setEnabled(false);
} else {
downListPreference.setEnabled(true);
}
return true;
}
});