onClick()来更改按钮边框颜色,而不是更改按钮颜色

时间:2018-06-22 15:33:53

标签: android android-button

我是android的新手,正在使用警报应用程序。为此,我有7个圆形按钮,每个按钮表示从星期日到星期六的一周中的某天。

我想要做的是当用户单击它时,我想更改所单击按钮的边框颜色,并且按钮文本显示在textview上。

然后,如果用户随机选择按钮(天),但textview文本(选定的天)应采用有序方式。

ex:用户首先选择“星期三”,然后是“星期日”,文本视图首先显示“星期三”,然后是“星期日”。星期日将自动第1天,然后是下一个星期三。(如果用户随机选择日期,则每天都有特定的位置,textview将显示所有的日子)

demo.xml

<Button
    android:id="@+id/mbtn_Sun"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/gray_button"
    android:gravity="center_vertical|center_horizontal"
    android:text="Sun"
    android:textAllCaps="false"
    android:textColor="#e20a1f" />

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

我建议改用Checkbox

下面是显示简单实现的示例:

<CheckBox
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:gravity="center"
    android:button="@null"
    android:background="@drawable/checkbox_custom_background" />

checkbox_custom_background.xml在哪里:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/gray_button" android:state_checked="false"/>
    <item android:drawable="@drawable/green_button" android:state_checked="true"/>
    <item android:drawable="@drawable/gray_button"/>
</selector>

答案 1 :(得分:0)

首先初始化您的按钮。

mButton=(Button)findViewById(R.id.mbtn_Sun);

然后这样做

mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            mButton.setBackgroundResource(R.drawable.green_button);

        }
    });

答案 2 :(得分:0)

您可以执行以下操作:

<Button
    android:id="@+id/mbtn_Sun"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/button_background"
    android:gravity="center_vertical|center_horizontal"
    android:text="Sun"
    android:textAllCaps="false"
    android:textColor="#e20a1f" />

然后使用选择器

button_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/green_button" android:state_pressed="true"/>
    <item android:drawable="@drawable/green_button" android:state_focused="true"/>
    <item android:drawable="@drawable/gray_button"/>
</selector>