【问题标题】:How to clear button's color when next button is clicked?单击下一个按钮时如何清除按钮的颜色?
【发布时间】:2013-03-29 22:32:55
【问题描述】:

单击下一个按钮后如何将按钮的颜色更改为默认值?我有这段代码为 onclicklistener 中的按钮设置颜色:

Button button = (Button) v;
button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));

我的所有按钮都有一键式监听器。单击下一个按钮时如何清除此按钮的背景颜色?

【问题讨论】:

    标签: java android


    【解决方案1】:

    或者,将上一个按钮的引用存储在您的活动范围内,并在 onclick 中使用它来重置它。 或者设置所有按钮的背景,除了被点击的那个。

    Button previousButton = null;
    
    @Override
    public void onClick(View v) {
        //reset old button
        if (previousButton != null) {
            previousButton.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x000000));
        }
    
        //prettify new button
        Button button = (Button) v;
        button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));
    
        previousButton = button;
    }
    

    【讨论】:

    • 第一件事怎么办?
    • 不,没用。我放置了 Button previousButton = null;在活动范围内,如果我在我的 onClickListener 旧按钮中使用其余代码永远不会重置,它们都会获得颜色,并且我在 onClick(View v) 按钮中使用它永远不会获得颜色。
    • 你在某处做错了什么。你试过调试,看看previousButton的值吗?
    • 好吧,我已经把你的代码复制到了你说我应该复制的地方。没有尝试调试。
    • 第一个滤色器换了吗?这应该是“正常”按钮的外观。我只是猜到了一个值...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 2023-04-05
    相关资源
    最近更新 更多