更改按钮android:背景到不同的drawable

Kei*_*rst 14 android background button drawable

我是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" />
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何更改android:background使用代码将上面的示例更改为黄色,例如,单击按钮时.

在下面的代码中,clickedButton是我需要更改背景的按钮的ID.

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);

    }
Run Code Online (Sandbox Code Playgroud)

我使用自定义按钮样式来定义按钮颜色:

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
Run Code Online (Sandbox Code Playgroud)

现在我只需要弄清楚如何将按钮从橙色更改为黄色.然后,我可以添加逻辑以在应用需要时更改颜色.

非常感谢任何帮助.

Has*_*wed 25

我假设您发布的onClick方法与您尝试更改的背景相同.使用此代码.

  v.setBackgroundResource(R.drawable.yellow_button);
Run Code Online (Sandbox Code Playgroud)

如果onClick不是同一个按钮的方法,请使用

  findViewById(R.id.button17).setBackgroundResource(R.drawable.yellow_button);
Run Code Online (Sandbox Code Playgroud)