如何知道按钮状态是否已从启用更改为禁用android?

时间:2018-09-21 23:27:52

标签: android components

我正在创建一个自定义按钮,该按钮将公开使用。 我想根据状态(如果已启用或禁用)更改按钮的颜色。

2 个答案:

答案 0 :(得分:1)

最简单的方法是将其drawable设置为StateListDrawable,其中嵌入了不同的启用和禁用状态。然后,您无需设置它,它会自行设置。

答案 1 :(得分:0)

如果要创建自定义按钮,可以这样做:

public class CustomBtn extends android.support.v7.widget.AppCompatButton {
    private Context context;

    public CustomBtn(Context context) {
        super(context);
        this.context = context;
    }

    public CustomBtn(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
    }

    public CustomBtn(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.context = context;
    }

    @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        if (enabled) {
            this.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimary));
        } else {
            this.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimaryDark));
        }
    }
}

并使用以下自定义按钮:

CustomBtn customBtn = findViewById(R.id.customBtn); //add a CustomBtn like normal widget in layout xml
customBtn.setEnabled(true);//this button color will be R.color.colorPrimary
customBtn.setEnabled(false);//this button color will be R.color.colorPrimaryDark