1
를 사용

가능한 중복 :
How can i set differnt background color for each row in listview?안드로이드 : ListView에있는 다른 색상 ArrayAdapter와

어떻게 내가 목록보기 항목에 대해 서로 다른/alretnate 색상을 추가 할 수 있습니까? 아래는 내 코드는 ArrayAdapter와

를 사용하여 ListView에 항목을 추가하는 것입니다
list = (ListView)findViewById(R.id.planetList); 
adapter = new ArrayAdapter<String>(MyListViewActivity.this, R.layout.my_list_row, R.id.planetNameTextView); 

for (int i = 0; i < planetNamesArray.length; i++) { 
adapter.add(planetNamesArray[i]); 
} 
list.setAdapter(adapter); 

사람이 .. 다른 배경 색상

+2

당신이보다 효율적으로 사용하는 사용자 정의 어댑터가이 – Akram

답변

0

사용하는 주문형 어댑터를 안드로이드하기 i'am 초보자를 ArrayAdapter와 사용 의사를 추가하는 나를 인도 할 수 코드는 다음과 같습니다.

Class MyAdpater extends BaseAdapter{ 

public ColorAndData{ 

private Color color; 
private Data data; 
} 
ColorAndData dataAndColor[]; 
public MyAdapter(ColorAndData[] data) 
this.dataAndColor=data; 

} 

public view getView(View convertView) 
{ 
dataAndColor.getColor() //and set color 
dataAndColor.getdata() //and set data 

} 
+0

을 달성하기는의 getView() 오버라이드 방법 아닌가? –

+0

@PareshMayani .. 그 이유는 내가 의사 코드를 썼다는 .. 그 정확한 코드가 아니라 단지 아이디어 .. – ngesh

+1

오, 그래, 그 벌금 :) –

6

먼저 getView() 메소드에서 사용자 정의 어댑터를 사용해야합니다. 위치를 확인해야합니다.

if(position % 2 == 0) 
      row.setcolor(R.color.color1); 
else 
     row.setcolor(R.color.color2); 

희망을 얻으십시오.

3

BaseAdapter을 확장하여 사용자 지정 어댑터 클래스를 만듭니다.

일단이 작업을 수행하면 getView() 메쏘드를 얻을 수 있으며, 그 메소드 내에서 목록 항목에 대해 원하는 뷰를 조작 할 수 있습니다.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    if(position[i]%2==0) 
    { 
    // even position color 
    } 
    else 
    { 
    // odd position color 
    } 
} 
관련 문제