【问题标题】:Android: Button Onclick eventAndroid:按钮 Onclick 事件
【发布时间】:2014-04-09 13:19:23
【问题描述】:

我想把颜色改回默认颜色。

如果假设我点击了按钮;按钮的颜色必须改变。如果我再次单击同一个按钮...颜色必须设置回默认值。

我怎样才能做到这一点...

b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (clicked) {
                    holder.b1.setBackgroundResource(R.drawable.like_icon_hover);
                } else {
                    holder.b1.setBackgroundResource(R.drawable.like_icon);
                }
                clicked = false;
            }
        });

【问题讨论】:

    标签: android android-intent android-listview android-button


    【解决方案1】:

    试试这个方法

    b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (clicked) {
                    holder.b1.setBackgroundResource(R.drawable.like_icon_hover);
                    clicked = false;
                } else {
                    holder.b1.setBackgroundResource(R.drawable.like_icon);
                    clicked = true;
                }
    
            }
        });
    

    或者在drawable/selector.xml 中创建一个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/like_icon_hover" />
      <item
       android:state_pressed="false"
       android:drawable="@drawable/like_icon" />
     </selector>
    

    并将此 Selector 设置为 Background 到您的 Button 之类的:

    android:background="@drawable/selector"
    

    【讨论】:

    • 简单好听的答案,,,
    • 我正在尝试做同样的事情,但要求我结束或无法通过事件点击访问持有者
    【解决方案2】:
    b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    
                if (clicked) {
                    holder.b1.setBackgroundResource(R.drawable.like_icon_hover);
                } else {
                    holder.b1.setBackgroundResource(R.drawable.like_icon);
                }
                clicked = !clicked;
            }
        });
    

    【讨论】:

    • 我正在尝试做同样的事情,但要求我结束或无法通过事件点击访问持有者
    猜你喜欢
    • 2014-04-04
    • 2013-02-28
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多