पहला आयाम राज्य सेट की एक सरणी है, दूसरा ist राज्य सेट ही है। रंग सरणी प्रत्येक मिलान स्थिति सेट के लिए रंगों को सूचीबद्ध करती है, इसलिए रंग सरणी की लंबाई को राज्यों के सरणी के पहले आयाम से मेल खाना पड़ता है (या यह तब दुर्घटनाग्रस्त हो जाएगा जब राज्य "उपयोग किया जाता है")। यहाँ और उदाहरण:
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
}
);
उम्मीद है की यह मदद करेगा।
EDIT उदाहरण: एक xml रंग राज्य सूची जैसे:
<?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>
इस तरह दिखेगा
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)
}
);