Я думаю, что следующее может помочь. Я хотел, чтобы одна из кнопок в списке кнопок была окрашена по-разному, чтобы подчеркнуть тот факт, что вы уже были в этом разделе.
Мои кнопки android: в качестве поля фона было задано следующее рисование (drawable / my_btn.xml)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_pressed" />
<item android:state_focused="true" android:drawable="@drawable/btn_focused" />
<item android:state_selected="true" android:drawable="@drawable/btn_selected" />
<item android:drawable="@color/transparent" />
</selector>
Вы заметите, что у меня есть предмет с установленным атрибутом android: state_selected = "true".
Тогда в коде вы можете иметь
Button mybtn = (Button)findViewById(R.id.my_btn_1);
mybtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Button btn = (Button)findViewById(R.id.nav_secondary_1);
btn.setSelected(true);
}
});
Я не уверен, что вы можете установить выбранную статистику для кнопки через свойство в XML. Не уверен, что вы захотите.
Порядок элементов также важен, так как он может изменить видимость других состояний. Текущий порядок позволит вам увидеть нажатые и сфокусированные состояния. однако, если вы переместите выбранный элемент в верхнюю часть, вы обнаружите, что ваше нажатое и сфокусированное состояния не будут отображаться.
Я не уверен, что вы можете комбинировать нажатые, сфокусированные и выбранные состояния, чтобы обеспечить более индивидуальную графику. Я не пробовал, но следующее позволит более сложные графические макеты на основе состояния.
<item android:state_selected="true" android:state_focused="true" android:drawable="@drawable/btn_selected_focused" />
Читайте о Селекторах здесь http://developer.android.com/guide/topics/resources/drawable-resource.html