안드로이드 개발 질문/답변
(글 수 45,052)
BaseAdapter를 상속받아서 MyListAdapter라는 클래스를 새로 만들었습니다
근데 문제는 리스트에 있는 셀을 클릭하면 원래 하이라이트라고해야되나?클릭한 셀부분 바탕색상이 잠시변하고 없어지는 기능이
없어져서 제가 정의를 해야될꺼같아
list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
이놈까진 만들었는데 onItemClick메서드에서 어떻게해야 클릭한 셀부분 바탕색상을 잠깐바꾸고 없앨수있을까요?
검색 계속해봣는데 제가 원하는 답이 안나와서 질문드립니다 ㅠ_ㅠ
2010.10.22 15:56:57
ListView에 들어가는 view들이 listview를 다 차지하면서 background로 보여지는 select화면 부분이 보여지질 못해서 나타나는 현상입니다.
1. listview에 넣는 custom view의 background를 transparent 한 넘으로 지정해 주시던지...
2. listview.setDividerHeight(3) 같은 걸로 divider 영역만큼 보이도록 하는 방법이 있긴 합니다.
2010.10.22 17:02:11
동영상을 보진 못했습니다만 원 listview에서 보여지는 것과 동일하게 효과를 주고 싶으심
custom view의 background 값에 selector 를 넣어서 사용하심 됩니다.
2010.10.22 17:04:11
별개는 아닙니다. 1번에 말씀하신것 처럼 님께서 getView로 리턴하는 그 뷰의 배경을 투명하게 하면 선택 색상이 적용됩니다.
근데 그게 곤란하다 하시면...
selector를 이용하는 방법도 있습니다.
그리고 click은 눌렀다 떼는게 클릭입니다. 즉... 눌렀다 떼야 나오는 이벤트입니다.
longClick은 쭉눌러서 정해진 시간점을 넘으면 떼지 않아도 됩니다만..
그리고 longClick터질때 click이 같이 올수도 있습니다만... 누르자마자 나오는 이벤트는 아니라는겁니다.
근데 그게 곤란하다 하시면...
selector를 이용하는 방법도 있습니다.
그리고 click은 눌렀다 떼는게 클릭입니다. 즉... 눌렀다 떼야 나오는 이벤트입니다.
longClick은 쭉눌러서 정해진 시간점을 넘으면 떼지 않아도 됩니다만..
그리고 longClick터질때 click이 같이 올수도 있습니다만... 누르자마자 나오는 이벤트는 아니라는겁니다.
2010.10.22 17:29:45
list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { view.setBackgroundColor(Color.RED); } });
확실히 이렇게 짰더니 클릭한 뷰의 바탕색이 빨간색을 변하네요
근데 하나더 질문드려보자면 가장최근에 클릭한놈만 빨간색으로 하고싶고 나머지는 하얀색 바탕화면으로 두고싶은데
(즉 최근에 클릭한놈 1개만 빨간색으로 바탕색을 변경...나머지는 하얀색)
어떻게해야되는지요?지금이대로하니깐 클릭한뷰말고도 다른뷰도 영향을 받는지 빨간색으로 변하는게 생기네요