정보기술, IT/IT source

gridview custom selector

100sk 2014. 9. 24. 11:44


GridView Selected 질문.jpg


위와 같이 구현 하고 싶은데요...


현재까지 알아 낸건 아래와 같습니다.


1.@Override
1.public void onItemClick(AdapterView<?> parent, View v, int position, long arg3)
1.{
1.parent.setBackgroundColor(Color.RED);
1.v.setBackgroundColor(Color.CYAN);
1.};


위와 같이 구현하니 아래와 같이 되요... 

GridView Selected 질문2.jpg


parent.setBackgroundColor(Color.RED);   이거 하기 전에 


parent 를 초기화 시켜줘야 하는건가요??


이거보다 더 좋은 방법이 있을것 같은데...


조언 부탁드립니다.


 

댓글
2011.10.20 11:38:36
이바둥
profile
parent가 아니라 parent의 각 child를 모두 초기화 후 선택된 child의 배경을 변화시키시거나.
이전 선택된 child의 position을 값을 가지고 계시다가 이전 child의 배경값을 원래색으로 바꾼 이후
현재 선택된 child의 배경을 변화시키셔야 될거에요.
첫번재 방법은 v.setBackgroundColor(Color.CYAN); 이전에 아래 코드를 써보세요 ㅎㅎ
for (int i=0; i<parent.getChildCount(); i++) {
    parent.getChildAt(i).setBackgroundColor(원래 색상);
}
댓글
2011.10.20 12:26:18
착한이

아래는 좀더 좋을 듯 합니다.

int old_position=0;

public void onItemClick(AdapterView<?> parent, View v, int position, long arg3)

{

......

if(old_position<parent.getChildCount())

parent.getChildAt(old_position).setBackgroundColor(원래 색상);

old_position=position;

.......

};