2016-10-03 24 views
0

リストビューの色を変更したいと思います。私はこのような行の色を変更したい。最初の色はオレンジ、次に赤、次に灰色、次に緑色でなければなりません。そして、これは、それぞれの位置を保持している行ごとに続きます。リストビュー内の行の色を変更しています

それは、すべての行の意味:

  • 位置= 0 - >オレンジ
  • 位置= 1 - >赤
  • 位置= 2 - = 3> Geryの
  • 位置→緑色

これは私のリストビューで繰り返されます。

どうすればいいですか?

私はそれを奇数行または偶数行に変更する方法を知っていますが、これに論理を見つけることはできません。

+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."); 
     } 
    } 
} 
関連する問題