2016-10-03 2 views
0

목록보기의 색상을 변경하고 싶습니다. 이런 행의 색상을 변경하고 싶습니다. 첫 번째 색상은 주황색, 그 다음 빨간색, 회색 및 녹색입니다. 그리고 이것은 각 행의 위치를 ​​유지하면서 계속됩니다. 각 행에 대한행의 목록보기에서 내 행의 색상을 변경합니다.

뜻 :

  • 위치 = 0 -> 주황색
  • 위치 = 1 -> 적색
  • 위치 = 2 -> GERY
  • 위치 = 3 -> 녹색

이 목록보기에서 반복됩니다.

어떻게 할 수 있습니까?

홀수 또는 짝수 행으로 변경하는 방법을 알고 있지만 논리를 찾을 수 없습니다.

+1

'위치 % 4'을 (를) 사용하실 수 있습니다. – hakim

+0

네,하지만 어떻게해야합니까? – nsr

+0

목록에서 같은 순서를 다시 반복 하시겠습니까? – Sarbjyot

답변

1

어댑터의 getView() 메소드에서 위치를 확인해야합니다.

int result = position % 4; 
if(result == 0){ 
    // set orange background 
} else if(result == 1){ 
    // set red background 
} else if(result == 2){ 
    // set grey background 
} else{ 
    // set green background 
} 
+0

로컬 변수에'position % 4' 결과를 저장하여 계산 횟수를 줄이고 원하는 경우 switch 문을 사용할 수 있습니다. 도움을 받으려면 – hakim

+0

tnx – nsr

0

enum을 사용하여 값을 일치시킬 수 있으며 논리를 구현하여 색상 이름을 기반으로 반환 할 수도 있습니다.

예를 보려면 아래 스 니펫을 참조하십시오. 여기서 내 색상은 각각 1, 2, 3 및 4 위치를 기준으로합니다.

enum Color { 
    ORANGE, GREEN, RED, GREY; 

    public static String getColorForRow(int position) { 
     return Color.values()[position].toString(); 
    } 
} 

public class ColorCoder { 
    public static void main(String[] args) { 
     try { 
      System.out.println("Color : " + Color.getColorForRow(5)); 
     } catch (ArrayIndexOutOfBoundsException e) { 
      System.out.println("Color doesn't exists."); 
     } 
    } 
} 
관련 문제