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

Listview에서 특정 item의 배경색을 변경하고 싶습니다.

0 추천

Listview와 simpleadapter를 이용하여 서버에서 가져온 데이터를 뿌려주고 있습니다.

다음 소스가 제가 위에서 말한 부분의 일부분 입니다.

 

Java파일 

ListAdapter adapter = new SimpleAdapter(getActivity(), contactList,

R.layout.list_item, new String[] { "jsonOne", "jsonTwo",

"jsonThree" }, new int[] { R.id.jsonOne,

R.id.jsonTwo, R.id.jsonThree });

listView.setAdapter(adapter);

 

 Xml파일 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:orientation="horizontal"

    android:padding="3dp"

    android:paddingLeft="10dp"

    android:paddingRight="10dp" >

 

    <TextView

        android:id="@+id/jsonOne"

        android:layout_width="120dip"

        android:layout_height="wrap_content"

        android:textColor="#43bd00"

        android:textSize="16sp"

        android:padding="5dp"

        android:textStyle="bold" />

 

    <TextView

        android:id="@+id/jsonTwo"

        android:layout_width="135dip"

        android:layout_height="wrap_content"

        android:padding="5dip"

        android:textColor="#acacac"

        android:textSize="16sp" />

 

    <TextView

        android:id="@+id/jsonThree"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:padding="5dip"

        android:textColor="#5d5d5d"

        android:textSize="16sp"

        android:textStyle="bold" />

</LinearLayout>

 

여기서 R.id.jsonThree값이 a로 시작하면 배경을 하늘색, 그 이외에는 배경을 흰색으로 할려고 합니다.

구글링을 해보니 관련된 자료들이 많은데 

 

public View getDropDownView (int position, View convertView, ViewGroup parent) {
                 View view = super.getDropDownView (position, convertView, parent); 
                 TextView text = (TextView) view.findViewById (android.R.id.text1); 
                 text.setTextColor (Color.BLACK); 
                 return view; 
             }

이와 같은 예제를 사용하면 될 거 같다는 느낌이 들었으나, 세부적으로 어떻게 해야 될지 감이 잡히지 않습니다.

고수님께서 도와주시면 감사하겠습니다. 바쁘시면 방향이라도 잡아주시면 감사하겠습니다.

 

익명사용자 님이 2015년 11월 5일 질문

1개의 답변

0 추천

전에 커스텀 리스트뷰- getview내에서 포지션이 홀이면 남색, 

짝이면 그냥 그대로 두는 걸 했는데 이런식으로 처리했습니다.

if(position%2==1)//홀수일 때만 색상변경
{
                holder.tv_phone.setBackgroundColor(Color.rgb(178, 204, 255));
}

전 뷰홀더를 쓰긴했는데, tv_phone이 핸드폰번호를 출력하는 textView구요.

지금 보니 한 줄에 원~쓰리 세개를 출력하시려는거같은데,

쓰리에 들어갈 값이 a로 시작하면 텍스트뷰 전체 다 [한줄 몽땅] 색을 바꿀것인지,

아니면 세번째 textView 색만 바꿀것인지 그건 ..글쓴님 맘대로니..,생략하고..

어차피 원~쓰리 애들은 한 포지션으로 처리되니, 원 투는 신경쓸 부분은 아니고,

쓰리값 중에 a로  시작하는 값이 몇 번째값들인지  확인하는게 중요할거같네요.

만약 1,3,7,10번째에 해당하는 애가 a로 시작한다면.. 이 포지션만 따로 색을 표시해야겠죠

 

 

 

 

 

 

망고사탕 (5,000 포인트) 님이 2015년 11월 5일 답변
...