Я хочу программно изменить селектор кнопки.
Я могу сделать это с помощью xml файла, который приведен ниже
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:drawable="@drawable/btn_off" />
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/btn_off" />
<item android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/btn_on" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_on" />
</selector>
Я хочу сделать то же самое программно. Я пробовал что-то вроде приведенного ниже
private StateListDrawable setImageButtonState(int index)
{
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.stateNotNeeded},R.drawable.btn_off);
states.addState(new int[] {android.R.attr.state_pressed, android.R.attr.state_enabled},R.drawable.btn_off);
states.addState(new int[] {android.R.attr.state_focused, android.R.attr.state_enabled},R.drawable.btn_on);
states.addState(new int[] {android.R.attr.state_enabled},R.drawable.btn_on);
return states;
}
но он не работал.
И как программно установить android:state_enabled="false"
или android:state_enabled="true"
.
Спасибо заранее.