안드로이드 개발 질문/답변
(글 수 45,052)
private CheckBoxPreference m_chBoxVibe;
..중략..
m_chBoxVibe = (CheckBoxPreference) findPreference("match_noti_vibrate");//무음, 진동모드 일때는 체크가 되지 않아도 진동으로 알림
if (!m_chBoxVibe.isChecked() && intDeviceMode!=2) { long[] vibrate = { 100, 100, 200, 300 }; notification.vibrate = vibrate;
}
이 부분에서 isChecked()가 자꾸 널포인터익셉션이 걸리네요..
왜 그럴까요?
체크가 되어있으면 notification에 진동 속성이 추가 되는거거든요..
이 부분을 주석처리해 놓지 않으면.. notification이 안뜨네요
코드로..ui를 건드릴 수 없다. 라는 것에 걸려서 그런건가요
해결책 좀 알려주세요
2011.11.22 17:48:43
아뇨. 저 방식이 맞긴한데, 부모 프리퍼런스가 제대로 설정 되어 있을때 저 방법이 먹는거죠...
부모 프리퍼런스 xml이 로드 되어 있는 상황인가요?
2011.11.22 17:57:06
하이앤님 말씀 보기전에 알았는데..
결론은 findByViewId와 다르게 findReference는 혼자 쓸 수 없네요(다른 클래스파일에서..)
addPreferencesFromResource(R.xml.setting_pref); <<이게 키포인트인것 같습니다.
이게 선언되지 않는 클래스에서는 Preference관련한 것들을 쓰지 못하는 듯합니다.
결국 extends PreferenceActivity 가 된 클래스에서만 사용되는 듯합니다.
AVD로 테스트 한거라 실제로 진동 여부를 모르겠습니다 ㅠㅠ
다른 분들도 도움되십사 하고 해답을 올려봅니다.
도움 주신분들을 비롯해 관심가져주신분들 모두 감사드려요




m_chBoxVibe객체가 널포인트 일꺼같은데..