为什么按钮的背景颜色在 Android Studio 中没有改变

问题描述 投票:0回答:0

我试图在点击按钮后改变它的样式。
我的计划:当用户点击按钮时,它会改变背景颜色(橙色 -> 白色)、边框(无 -> 橙色边框)、文本颜色(白色 -> 绿色)。
但是当我用可绘制的形状做它时(对于边框,因为它说这里),它将背景颜色更改为橙色(描边颜色)而不是白色(因为我写的是实体形状和函数中的

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"
            />
android button border background-color
© www.soinside.com 2019 - 2024. All rights reserved.