2011-03-27 5 views

답변

7

예, 가능합니다. 당신이 Spinner Tutorial 다음 경우 다음 교류 색상 효과 생산하는 어댑터 (항목의 List 전달)를 서브 클래 싱 할 수 있습니다 : 당신은 이미 자신의 어댑터를 정의하고 구현하는 경우

ArrayAdapter<CharSequence> adapter = 
     new ArrayAdapter(this, R.layout.simple_spinner_item, myList) { 
    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
     View view = super.getDropDownView(position, convertView, parent); 
     if (position % 2 == 0) { // we're on an even row 
      view.setBackgroundColor(evenColor); 
     } else { 
      view.setBackgroundColor(oddColor); 
     } 
     return view; 
    } 
} 

getDropDownView 당신은 추가 할 수 있습니다 당신의 방법의 끝 부분에 위와 같은 것.

- 슬 런드의 조언으로 업데이트되었습니다. 고맙습니다!

+1

회 전자 드롭 다운 목록의 경우 getDropDownView를 재정의해야합니다. Spinner의 경우 getView는 항목의 회 전자 자체에 표시된보기를 반환합니다. getDropDownView는 뷰를 목록에 표시하는 데 사용됩니다. – slund

+0

감사합니다! 실제로 Spinner를 많이 사용하지는 않았고 getDropDownView에 대해 몰랐습니다. 귀하의 의견을 바탕으로 내 대답을 편집했습니다. –

+0

내가 다음과 같은 오류 메시지를 표시하려고 할 때 새 ArrayAdapter 형식의 getDropdowView (int, View, ViewGroup) () {}은 슈퍼 유형 메소드를 무시하거나 구현해야합니다. – Gainster

1

사용자 정의 어댑터를 만들고 각 항목의 색상을 변경할 수 있습니다. 자세한 내용은 this 링크를 참조하십시오.

관련 문제