마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

listview에서 선택한 열의 색상 변경하기..

+1 추천
 
-xml부분-
<ListView 
     android:id="@+id/listView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:listSelector="#00D8FF"
     ></ListView>
 
-java부분-
~listview,adapter,arraylist선언완료~
 
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
{
 
if(position==0)
{
//항목 1번.
}
.
.
.
 
안녕하세요.리스트 항목이 3개가 있는데요,
position 0,1,2을 각각 클릭했을 때 xml에서 지정한 색상으로  변경되었으면 하는데, 아무런 변화가 없습니다.
현재 무슨 열을선택했는지 구분해 주기 위해서 , 색상을 변경하려는데 뭐가 잘 못된걸까요?ㅠ

 

anci (19,950 포인트) 님이 2014년 3월 25일 질문
android:listSelector="#00D8FF" 주먹밥님 하신것처럼 리스트뷰에 요렇게만 해도 구분색이 적용되지않나요? 이게 적용이 안된다는건가요 아니면 여러개의 항목을 선택했을때 모두 적용되게 하고 싶다는 건가요?
네, xml에 추가한 android:listSelector가 있어도 적용되지 않습니다.
이전에 배경색이 자꾸 들쑥날쑥 바뀌어서 임시방편으로 background를 ffffff(흰색)으로 바꿨는데, 싹 다 지우고,  android:cacheColorHint="#00000000" 로 변경했구요.

일단 listview에 클릭 이벤트로 각 항목을 클릭했을 때
1번은 1번에 맞는 토스트가, 2번은 2번에 맞는 토스트가 나오기는 합니다만.. 뭘 클릭했는지 상태변화를 주고 싶어서 선택한 행만 특정 컬러로 바꾸고 싶은데 색상이 아예 바뀌질 않네요 ^^;

1개의 답변

+1 추천
 
채택된 답변
주먹밥님 말씀대로 캐쉬컬러힌트 색상 변경후 테스트해보았으나

저는 정상적으로 동작하네요.. 흠.. 코드 상의 차이인 것 같은데 @_@

다른 방법으로는 아래와 같이 직접 지정하는 수도 있어요

public void onItemClick(AdapterView<?> arg0, View v, int position,
     long id) {
    // TODO Auto-generated method stub
    if(position==0){
     Toast.makeText(getBaseContext(), "0번임다", Toast.LENGTH_SHORT).show();
     v.setBackgroundColor(Color.YELLOW);
    }
    if(position==1){
     Toast.makeText(getBaseContext(), "1번임다", Toast.LENGTH_SHORT).show();
     v.setBackgroundColor(Color.RED);
    }
    if(position==2){
     Toast.makeText(getBaseContext(), "2번임다", Toast.LENGTH_SHORT).show();
     v.setBackgroundColor(Color.BLUE);
    }
}
초보개발자ㅠ (33,870 포인트) 님이 2014년 3월 25일 답변
anci님이 2014년 3월 25일 채택됨
안녕하세요, 답변 감사합니다^^
지금 코드를 다시 확인해보니..listview 색상이 요상하게 들어가네요.
보통 xml의 listView에서 backgroud 컬러값을 주면 리스트뷰 영역 전체가 해당 색상으로 바뀌는거 아닌가요?.. 지금 녹색으로 배경색을 줬는데, 1,2,3열 밑에 살짝 남은 여백부분만 색상이 변하고, 해당 리스트의 열은 배경이 흰색입니다..어디에서 색상이 덮어씌워진건지 모르겠는데 이부분을 고쳐봐야겠네요;; 감사합니다.
+)
아이고..문제점 찾았습니다.;;
adapter 선언할 때, 해당 열마다 들어갈 textview의 layout부분을 보니 거기배경색이 흰색이었네요...제거하니까 색상 잘 들어옵니다..ㅠㅠ
무한의 삽질을 했네요..
...