android - 使用选择器更改按钮的颜色并保持此颜色

标签 android xml drawable

我想做的是在用户按下按钮时更改按钮的颜色。我需要声明红色/绿色。按钮开始是红色的,如果你按下改变绿色,如果你再次按下返回到红色。如果再按一次,绿色....

我试图找到类似的东西,但找不到任何东西。 可以使用可绘制选择器来实现吗?

这是我在尝试,压完后不留颜色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- green state -->
    <item
        android:drawable="@drawable/btn_selector_green"
        android:state_selected="true"></item>
    <!-- green state -->
    <item
        android:drawable="@drawable/btn_selector_green"
        android:state_pressed="true"></item>
    <!-- red state -->
    <item
        android:drawable="@drawable/btn_selecto_come_back"></item>

</selector>

提前致谢

最佳答案

当按钮被按下时,它的状态变为“state_pressed”。 但是,对于 state_selected 不会发生这种情况,如果您想使用按钮和选定状态,则必须通过代码明确地将按钮的状态设置为选定状态,将 onClickListener 添加到您的按钮并在 onClick() 内部执行:

button.setSelected(!button.isSelected());

这将在每次按下按钮时切换选定状态。

关于android - 使用选择器更改按钮的颜色并保持此颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41349114/

相关文章:

android - 用于 ListView 的 Google Now 卡片 UI

Android - 单选按钮不显示其文本

android - 颜色 Primary Dark 不起作用

android - GradientDrawable 类的 innerRadiusRatio 和 thicknessRatio 之间存在什么样的联系?

Android - 在可绘制对象中获取形状颜色/实体

java - Android 矩形渐变 centerX 不工作

android - 无法从其他模块打开 Activity

android - 库 com.google.android.gms :play-services-measurement-base is being requested by various other libraries at [[15. 0.0,

Java android Open Street map 不显示 map

android - 使用 http post 方法为 android 应用程序发送 json 对象