Вы хотите изменить цвет фона кнопки, если вы нажмете кнопку? да, вы можете сделать это
первого определения состояния
private int btnState = 1;
private final static int BUTTON_STATE_SELECTED = 0;
private final static int BUTTON_STATE_UNSELECTED = 1;
затем установить идентификатор к кнопке
android:id="@+id/btnRoute"
android:background="@color/green"
android:drawableLeft="@drawable/custom_routes_start_button_icon"
android:text="@string/custom_route_start"
объявить кнопку в вашей деятельности
Button btnRoute = (Button) findviewbyid(R.id.btnRoute);
после этого создать прослушиватель onclick, который изменит цвет кнопки на основе состояния
private View.OnClickListener mOnClickBtnRoute = new View.OnClickListener() {
switch(btnState) {
case BUTTON_STATE_SELECTED:
btnRoute.setBackgroundColor(green);
btnRoute.setText(start);
Drawable img = getContext().getResources().getDrawable(R.drawable.custom_routes_start_button_icon);
btnRoute.setCompoundDrawablesWithIntrinsicBounds(img, null, null, null);
btnState = BUTTON_STATE_UNSELECTED;
break;
case BUTTON_STATE_UNSELECTED:
btnRoute.setBackgroundColor(red);
btnRoute.setText(stop);
Drawable img = getContext().getResources().getDrawable(R.drawable.custom_routes_stop_button_icon);
btnRoute.setCompoundDrawablesWithIntrinsicBounds(img, null, null, null);
btnState = BUTTON_STATE_SELECTED;
break;
}
};
, то не забудьте установить слушателя к кнопке
btnRoute.setOnClickListener(mOnClickBtnRoute);
пожалуйста, помните, что весь код кодируется здесь так, может быть, там будет так делать печатать с ошибками, пожалуйста, не просто копировать вставить но постарайтесь понять концепцию :), и если у вас есть вопрос о моем ответе, не стесняйтесь спрашивать в комментарии!
попробуйте сделать кнопку, у которой уже есть текст –
фон и drawableLeft должны иметь возможность использовать обычный селектор (для каждого). Текст может быть выполнен с помощью onTouchListener (сменить текст в то время как вниз и вернуться обратно) – Warpzit
Что вы подразумеваете под «выбранным»? Вы имеете в виду, что нажата кнопка? Или он получил фокус? – Terry