Как реализовать несколько действий одной кнопкой?
@AlexRudkowskij предложил в принципе рабочее решение, но не очень красивое с точки зрения ООП и паттернов проектирования. Осмелюсь предложить другой вариант. Для каждого цвета реализуем несколько полей, реализующих View.OnClickListener. При этом в обработчике каждого меняем сначала цвет кнопки на нужный, а потом прописывает кнопки следующий класс-слушателя. Ну, а при старте Activity назначаем один из слушателей.redButtonListener = new View.OnClickListener() {
	@Override           
	public void onClick(View v) {
		myButton.setBackgroud(R.drawable.green);
		myButton.setOnClickListener(greenButtonListener);
		// выполняем дополнительные действия
	}
}

greenButtonListener = new View.OnClickListener() {
	@Override           
	public void onClick(View v) {
		myButton.setBackgroud(R.drawable.red);
		myButton.setOnClickListener(redButtonListener);
		// выполняем дополнительные действия
	}
}
Таким образом достигаем:
1. Понятности в коде. Не надо в голове держать какой индекс за какой цвет должен отвечать. Код самодокументированный.
2. Легко вносить правки при добавлении новых цветов.
3. Каждый обработчик нажатий в отдельном месте, а не в лапше if или swith
Вы неправильно понимаете свою задачу :(