Вы можете использовать ToggleButton
Если вы используете вместо этого кнопку, вы можете сделать поле boolean m_isOn;
в своем классе, а в OnClickListener проверить это поле и установить цвет кнопки (например, с помощью setColorFilter ()) и текст соответствующим образом.
Редактировать
Небольшой пример, если вы действительно хотите избежать ToggleButton и использовать drawables:
@Override
public void onClick(View v) {
m_isOn ^= true;
((Button)v).getBackground().setColorFilter(m_isOn ? 0xFF00FF00 : 0xFFFF0000, PorterDuff.Mode.MULTIPLY);
((Button)v).setText(m_isOn ? "ON" : "OFF");
}