Подтвердить что ты не робот

Изменить андроид: фон для разных доступных

Я новичок в Android и Java, но мне удалось научиться и найти ответы на вопросы о stackoverflow, не задавая вопросов. До сих пор....

Здесь, у меня есть много цветных кнопок, которые при нажатии меняют цвет на диапазон разных цветов.

Существует много кнопок, например:

<Button
   android:id="@+id/button17"
   android:layout_width="0dp"
   android:layout_height="fill_parent"
   android:layout_weight="1"
   android:background="@drawable/orange_button"
   android:gravity="center"
   android:onClick="onClick" />

Может кто-нибудь, пожалуйста, сообщите мне, как изменить андроид: фон, используя код, чтобы изменить приведенный выше пример на желтый, например, при нажатии кнопки.

В приведенном ниже коде clickedButton - это идентификатор кнопки, для которой мне нужно изменить фон.

public void onClick(View v) {
    int id=v.getId();
    String clickedButton = getResources().getResourceEntryName(id);

    Change button to Yellow here??

    // Temporary code below to check which button was pressed
    // and convert its number to an integer to eventually access an array

    final TextView tvGameTimer = (TextView) findViewById(R.id.tvGameTimer);
    int buttonNumber = Integer.parseInt(clickedButton.substring(6,8));
    tvGameTimer.setText("" + buttonNumber);

    }

Я использую пользовательские стили кнопок, чтобы определить цвета кнопок:

res/drawable/yellow_button.xml
res/drawable/blue_button.xml
res/drawable/red_button.xml
res/drawable/orange_button.xml
res/drawable/green_button.xml

На данный момент мне просто нужно решить, как сменить кнопку "От оранжевого до желтого". Затем я могу добавить логику для изменения цветов как и когда требуется приложение.

Большое спасибо за любую помощь.

4b9b3361

Ответ 1

Я предполагаю, что метод onClick, который вы публикуете, имеет ту же кнопку, фон которой вы пытаетесь изменить. Используйте этот код.

  v.setBackgroundResource(R.drawable.yellow_button);

Если onClick не является методом одной и той же кнопки, используйте

  findViewById(R.id.button17).setBackgroundResource(R.drawable.yellow_button);

Ответ 2

Button btn = (Button) findViewById(R.id.button17);
btn.setBackground(this.getResources().getDrawable(R.drawable.yellow_button));

Попробуйте это.