아래는 코모스튜디오가 직접 만든 무료 앱이에요(한 번만 봐주세요 ^^)
안드로이드 리스트의 경우에는 간단히 list.setSelector를 해주면 아이템 클릭 효과를 줄 수 있다. 뿐만 아니라 Preference에서도 비슷하게 사용 할 수 있는데, getListView를 한 뒤 리스트처럼 사용하면 아이템 클릭시 효과를 얻을 수 있다.
하지만 언제나 어려운 문제는 발생하는 법. 만약 Preference를 오버라이드(Override)한 다면 어떻게 처리 해야 할까? 오버라이드를 했으니 메인 프리퍼런스 액티비티가 어찌 손을 쓸 수도 없고... 오버라이드한 프리퍼런스에서 getListView를 하기도 그렇고... 그럼 도데체 이 리스트 아이템을 어떻게 가져 올 거냐?
여기 저기 검색을 해봐도 오버라이드 되지 않은 프리퍼런스의 아이템에 대한 얘기 밖에 없다. 그럼... 어차피 새로 만드는 셈 치는 것이 오버라이드인데... 그럼 새로 만들자라는 생각으로 아래와 같이 만들었다. 오버라이드한 프리퍼런스의 OnCreateView에서 아래와 같은 작업을 하면 된다.
1. 뷰 또는 버튼 등에 OnClickListener가 아니라 OnTouchListener를 더 달아 준다.
2. 손으로 눌렀을 때 효과를 보여주고
3. 손을 때어내면 효과를 지운다.
4. 만약 이전 효과를 기억 하지 못한다면
Drawable initialDrawable = mView.getBackground();
이렇게 가져 온 뒤 다시 넣어 주면 된다.
안드로이드에서 프리퍼런스는 다른 기본 적인 아이템들 보다 어렵다. 오버라이드도 어렵다. 하지만, 찬찬히 뜯어 보면 그 나물에 그 밥이다.
' [안드로이드 공부] > 프리퍼런스' 카테고리의 다른 글
CheckBoxPreference - check상태에 따라 활성, 비활성 바뀌게 하기 (0) | 2016.04.05 |
---|---|
안드로이드 프리퍼런스 보이기 안보이기 (0) | 2015.12.24 |
안드로이드 preference persisit 의 비밀 한가지 (0) | 2015.10.08 |
안드로이드 오버라이드의 비밀과 함정 -Preference (0) | 2015.10.08 |
SwitchPreference 이벤트 중복 버그 (0) | 2015.09.30 |
모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다. |
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요. |