İlk boyut bir durum kümeleri dizisidir, ikincisi durumun kendisi isterse. Colors dizisi, eşleşen her durum kümesi için renkleri listeler, bu nedenle colors dizisinin uzunluğu durum dizisinin ilk boyutuyla eşleşmelidir (veya durum "kullanıldığında" çökecektir). Burada ve örnek:
ColorStateList myColorStateList = new ColorStateList(
new int[][]{
new int[]{android.R.attr.state_pressed}, //1
new int[]{android.R.attr.state_focused}, //2
new int[]{android.R.attr.state_focused, android.R.attr.state_pressed} //3
},
new int[] {
Color.RED, //1
Color.GREEN, //2
Color.BLUE //3
}
);
Bu yardımcı olur umarım.
EDIT örneği: şunun gibi bir xml renk durumu listesi:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/white"/>
<item android:color="@color/black"/>
</selector>
böyle görünecek
ColorStateList myColorStateList = new ColorStateList(
new int[][]{
new int[]{android.R.attr.state_pressed},
new int[]{}
},
new int[] {
context.getResources().getColor(R.color.white),
context.getResources().getColor(R.color.black)
}
);