안드로이드 개발 질문/답변
(글 수 45,052)
커스텀 preference 로 컬러피커 띄우는 소스입니다.
근데 색상을 변경하고 OK누르면 그 화면에서는 색상이 바뀌는데
다른 activity 에서 적용이 안되길래 소스를 뜯어봤습니다.
preference에서 불러오는 xml
<com.패키지명...ColorPickerPreference android:key="edit_motto_color" android:title="@string/edit_motto_color" android:defaultValue="@integer/COLOR_WHITE" alphaSlider="true" />
커스텀 preference
public class ColorPickerPreference
extends
Preference
implements
Preference.OnPreferenceClickListener,
ColorPickerDialog.OnColorChangedListener {
.............
@Override
public void onColorChanged(int color) {
if (isPersistent()) {
persistInt(color);
}
mValue = color;
setPreviewColor();
try {
getOnPreferenceChangeListener().onPreferenceChange(this, color); << 이곳
} catch (NullPointerException e) {
//Log.i("b", "haha : " + color);
}
}
색상을 고르고 적용을 누르면,
위의 onPreferenceChange 부분에서
10-08 02:19:03.789: ERROR/AndroidRuntime(892): java.lang.NullPointerException
가 납니다..
혹 힌트 주실분 있으신지요..?
color찍어보면 -592282828 값이 들어가는데 널포인트는 아니거든요.




this 말고 context값을 받아서 넣어 보세요.
getContext() 로 받아서 넣으시면 될듯 한대요?