如何设置选择器只需单击按钮?

时间:2014-05-05 10:26:10

标签: android android-selector

我曾经多次搜索,但我找不到我需要的东西。

我需要的是:

当用户只需点击我想要的按钮就改变了背景图像。(用户不需要按下按钮我只需要点击一下并更改图像)

我做的是:

选择器中的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true" 
        android:drawable="@drawable/web_wl" />
    <item android:drawable="@drawable/web" />
</selector>

并按下按钮xml:

  <Button
        android:id="@+id/btn_wb"
        android:layout_width="50dp"
        android:layout_height="50dp"  
        android:background="@drawable/web_selector" />

但这仅适用于用户按住按钮,但我需要它只需单击一下。

提前致谢

1 个答案:

答案 0 :(得分:1)

选择器使用Color State List Resource。我不确定在状态列表中是否存在预期的行为。但是,您可以使用单击侦听器事件而不是使用选择器来实现此目的:

// init a boolean
private boolean isPressed = false; 

// click listener event 
btn_wb.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v) {
        // change the background once 
        if(!isPressed) {
            v.setBackgroundResource(R.drawable.web_wl);
            isPressed = true;
        }
    }
});