Я применил следующий селектор ко всем моим кнопкам, указав его в моей теме:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/my_btn_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/my_btn_focussed"
android:state_focused="true" />
<item android:drawable="@drawable/my_btn_normal" />
</selector>
Это отлично работает.Но я хочу, чтобы фон кнопки оставался «@ drawable / my_btn_pressed» при нажатии кнопки, как если бы он выделил, что это была последняя нажатая кнопка.Следовательно, я добавил код в свой onClick()
для установки фонового ресурса:
infoButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
infoButton.setBackgroundResource(R.drawable.my_btn_pressed);
otherButton.setBackgroundResource(R.drawable.my_btn_normal);
}
});
Это также работает, чтобы выделить последнюю нажатую кнопку с помощью my_btn_pressed.Однако после этого мои свойства селектора, похоже, не работают на других кнопках.В основном сфокусированное состояние вообще не различимо.
Любая идея, как я могу сделать и то, и другое, то есть различать сфокусированное, нажатое и нормальное состояния кнопки, а также выделить последнюю нажатую кнопку?