Dimensi pertama adalah larik set keadaan, yang kedua adalah set negara itu sendiri. Array warna mencantumkan warna untuk setiap set keadaan yang cocok, oleh karena itu panjang array warna harus cocok dengan dimensi pertama dari array state (atau akan crash ketika negara "digunakan"). Di sini dan contoh:
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
}
);
semoga ini membantu.
Contoh EDIT: daftar status warna xml seperti:
<?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>
akan terlihat seperti ini
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)
}
);