14

我是 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" />

有人可以告诉我如何使用代码更改 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);

    }

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

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

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

非常感谢您的帮助。

4

2 回答 2

27

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

  v.setBackgroundResource(R.drawable.yellow_button);

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

  findViewById(R.id.button17).setBackgroundResource(R.drawable.yellow_button);
于 2012-10-20T15:38:52.877 回答
2
Button btn = (Button) findViewById(R.id.button17);
btn.setBackground(this.getResources().getDrawable(R.drawable.yellow_button));

尝试这个。

于 2012-10-20T15:38:35.553 回答