본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] ListVIew 클릭시 focus 유지하는 방법.

by 돼지왕 왕돼지 2012. 10. 19.
반응형


listview 클릭시 focus 유지하는 방법.

기본적으로 2가지 + 1 방법 이 있습니다. ( + 1 은 Selector 를 이용한 방법으로 다른 글을 참조하세요~ )

1. ListView 의 ChoiceMode 지정하기.

- ListView 의 ChoiceMode 를 "singleChoice" 모드로 주면, ListView 가 Click 되었을 때 focus 를 유지할 수 있습니다. Click 된 녀석이 다른 형태로 보입니다. 




2. 수동으로 Background 조정하기

- 사실 1번의 방법은 Focus 를 줄 수는 있지만, 여러분이 원하는 방법이 아닐 것이라 사려됩니다. 여러분이 원하시는 건 아마 이런 것이겠지요?

이미지 출처 : http://www.androidhive.info/2011/10/android-listview-tutorial/


- 고개를 끄덕끄덕 하셨다면 바로 방법을 알려드리겠습니다. 방법은 이 글의 subTitle 과 같습니다. 수동으로 background 를 조정하는 것입니다.




1. Custom Adapter 를 만든다.

2. setFocus, releaseFocus 와 같은 함수를 만든다.

3. setFocus 와 releaseFocus 에서는 setBackgroundDrawable, setBackgroundResource, setBackgroundColor 등의 함수를 통해 Focus 를 set 또는 release 해준다.

 
4. 주의사항!! ListView 는 기본적으로 convertView 라는 녀석을 재활용하기 때문에 getView() 에서 현재 focus 된 index 를 관리하면서 focus 를 끄고 켜고를 해줘야 합니다. 이 부분이 이해가 안 가신다면, focus 주는 부분을 구현하시고, item 들을 많~~이 추가해서 테스트 해보세요. 바로 아~ 하실겁니다. ㅎ 











반응형

댓글