@Axeles
Нечего тут пока писать

Как в Java (Android) поменять цвет Layout несколько раз при нажатии на одну кнопку?

Всем добрый вечер. Я совсем недавно начал изучать Java. То есть я учу язык программирования и пытаюсь применять сразу всё на практике непосредственно на своих примерах. Естественно, сталкиваюсь с множеством проблем, но постепенно их решаю, конечно, не без помощи. В том числе и "жителей" этого сайта.

И сейчас вновь хочу Вас попросить мне помочь и объяснить пример кода, а возможно и предложить свой вариант.

Задача у меня следующая. Есть один RelativeLayout и Button а также переменная int n = 0. Мне необходимо сделать так, что бы по нажатию на кнопку менялся цвет Layout'а. Если бы было несколько кнопок то трудностей у меня не возникало бы, но я не как не пойму механизм реализации при одной кнопке. Признаюсь честно, я декомпилировал похожее приложение в учебных целях, и не как не могу разобрать некоторые непонятные мне моменты. Радует лишь одно, ход мысли был правильный.

Теперь к коду обработчиком OnClickListener выступает Activity далее привожу пример нажатия на кнопку
@Override
	public void onClick(View v) {
		switch (this.n) {
		case 0:
			rltLayout.setBackgroundColor(Color.GREEN);
			this.n = 1;
			return;
		case 1:
			rltLayout.setBackgroundColor(Color.RED);
			this.n = 2;
			return;

		default:
			break;
		}
	}


Для меня тут слишком много this, не могу понять, как работает этот код. Я не понимаю строку switch (this.n) понял бы если было бы switch (v.getID()) но по ID нам искать нечего. И совсем не понимаю this.n = 1;
return;
  • Вопрос задан
  • 6699 просмотров
Пригласить эксперта
Ответы на вопрос 1
@SashaSkot
Специалист широкого профиля
В поле объекта this.n записывает некое состояние (0 или 1). При нажатии на кнопку проверяется текущее значение и в зависимости от него меняется цвет фона лэйаута. Далее, наверное, следуя логики в эту же переменную пишутся другие значения и return прерывает выполнение switch.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы