我试图在点击按钮后改变它的样式。
我的计划:当用户点击按钮时,它会改变背景颜色(橙色 -> 白色)、边框(无 -> 橙色边框)、文本颜色(白色 -> 绿色)。
但是当我用可绘制的形状做它时(对于边框,因为它说这里),它将背景颜色更改为橙色(描边颜色)而不是白色(因为我写的是实体形状和函数中的
buttonPressed.setBackgroundColor
方法 pressSemButton
以防万一)。我改变按钮样式的功能:
public void pressSemButton(Button buttonPressed, Button button) {
buttonPressed.setBackground(getResources().getDrawable(R.drawable.orange_white_border));
buttonPressed.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white));
buttonPressed.setTextColor(getResources().getColor(R.color.green_dark));
}
orange_white_border 的 XML:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@color/white" />
<corners android:radius="30dp"/>
<stroke android:width="2dp" android:color="@color/orange_light"/>
</shape>
片段 XML 中按钮的 XML 代码:
<Button
android:id="@+id/firstSemesterButton"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text= "@string/buttonFirstSem"
app:layout_constraintStart_toStartOf="parent"
android:layout_weight="1"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>