我在Button
中有一个/drawable/
XML文件,用于更改按钮的状态
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/img_pressed"
android:state_pressed="true"/>
<item android:drawable="@drawable/img_normal"
android:state_focused="true" />
<item android:drawable="@drawable/img_normal"/>
</selector>
如果我只在点击事件中更改背景,那就没关系。
但现在,我有一个左侧可绘制的按钮,点击后我必须更改左侧可绘制,文本颜色和按钮背景。
Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My button"
android:textColor="@android:color/white"
android:drawableLeft="@drawable/btn_leftDrawable"
android:background="@android:color/transparent"
/>
我可以在此XML中执行此操作吗?我不想通过在setOnClickListener
方法中的Java代码中执行这些额外任务来制作意大利面条代码。
答案 0 :(得分:2)
创建三个不同的xml选择器并将它们添加到相应的属性中。
样品:
<强> TEXTCOLOR:强>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/click"/>
<item android:color="@color/normal"/>
<强>背景强>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/buttonBackgroundClick"/>
<item android:color="@android:color/transparent"/>
将它们添加到您的按钮:
Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My button"
android:textColor="@drawable/textColor"
android:drawableLeft="@drawable/btn_leftDrawable"
android:background="@drawable/background"
/>