Android 如何在小部件中创建一个按钮,它会在单击时更改其颜色?

Android 如何在小部件中创建一个按钮,它会在单击时更改其颜色?,android,Android,我在stackOverflow和互联网上搜索,但找不到合适的信息 当然,我知道什么是RemotViews,是正常活动中onClick方法的基础,但在widget中它太复杂了。我在搜索像这样的东西:pendingent,Intent,但没有找到任何东西 问题/我想要达到的目标: 在我的主屏幕小部件上,我有一个按钮。当我点击时,我希望它的颜色改变,再次点击它,我希望它被设置为初始颜色。在进一步的点击中,我希望这种切换能够发生 希望有人能帮助我:)在活动布局文件中,将按钮设置为 <Button

我在
stackOverflow
和互联网上搜索,但找不到合适的信息

当然,我知道什么是
RemotViews
,是正常活动中
onClick
方法的基础,但在widget中它太复杂了。我在搜索像这样的东西:
pendingent
Intent
,但没有找到任何东西

问题/我想要达到的目标:

在我的主屏幕小部件上,我有一个
按钮
。当我点击时,我希望它的颜色改变,再次点击它,我希望它被设置为初始颜色。在进一步的点击中,我希望这种切换能够发生


希望有人能帮助我:)

在活动布局文件中,将按钮设置为

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:onClick="onClick"/>

这将在每次按下按钮时交换颜色

您应该尝试使用选择器可绘制颜色状态列表,并将其设置为按钮的背景

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>