Java 是否在单击事件时更改按钮背景色?

Java 是否在单击事件时更改按钮背景色?,java,android,android-layout,android-fragments,android-button,Java,Android,Android Layout,Android Fragments,Android Button,当我在活动上声明一个按钮并设置android:onClick属性时,活动会在按下按钮时自动更改按钮的背景色 现在我在碎片上找到了一个按钮。因为我不能在这里使用android:onClick,所以我使用的是onClick监听器。按钮可以工作,但是它不再改变它的样式 我必须手动执行此操作吗?怎么做?我们需要一个XML文件,可绘制选择器。我用res/drawable/bg_button.xml将此文件命名为: 创建一个新的XML文件,将其命名为res/drawable/bg_button_normal

当我在活动上声明一个按钮并设置android:onClick属性时,活动会在按下按钮时自动更改按钮的背景色

现在我在碎片上找到了一个按钮。因为我不能在这里使用android:onClick,所以我使用的是onClick监听器。按钮可以工作,但是它不再改变它的样式

我必须手动执行此操作吗?怎么做?

我们需要一个XML文件,可绘制选择器。我用res/drawable/bg_button.xml将此文件命名为:

创建一个新的XML文件,将其命名为res/drawable/bg_button_normal.XML,然后复制上面的代码。然后,将android:color替换为正常颜色,即当按钮处于正常状态时

最后:

<Button
    android:id="@+id/..."
    android:text="@string/..."
    android:background="@drawable/bg_button"/>
如果没有res/drawable文件夹,请创建一个新文件夹。

试试这个

参考你的按钮

yourButton = (Button) <fragment name>.findViewById(R.id.<button id>);
yourButton.setOnClickListener(this);
在点击事件中

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {

case R.id.yourButton:
    yourButton.setBackgroundColor(getActivity().getResources().getColor(<colour code>));
    break;

default:
    break;
}
}
您可以使用背景选择器作为按钮的背景,以处理按下的、聚焦的。。。国家。
yourButton = (Button) <fragment name>.findViewById(R.id.<button id>);
yourButton.setOnClickListener(this);
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {

case R.id.yourButton:
    yourButton.setBackgroundColor(getActivity().getResources().getColor(<colour code>));
    break;

default:
    break;
}
}