2013-04-09 51 views
1

我在我的onClickListener(我有别的东西,但它不是有关这个问题的代码:如何重置以前点击过的按钮的颜色?

final OnClickListener clickListener = new OnClickListener() { 


      public void onClick(View v) { 

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

} 
} 

我设置的按钮颜色为绿色(有一些不透明度),当我按下它如何清除该颜色,将其重置为我的默认按钮的颜色(不是Android的默认,我的默认设置的颜色),而只是当前按下按钮为绿色

编辑:

这里是我的整个onClickListener代码:

final OnClickListener clickListener = new OnClickListener() { 

      private Button buttonClicked; 

      public void onClick(View v) { 

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

       if (buttonClicked == null) { 
        // first button is clicked 
        buttonClicked = button; 
       } // only do stuff if buttons are in different layouts 
      else if (button.getParent() != buttonClicked.getParent()) { 
        // second button is clicked 
        if (buttonClicked.getTag().equals(button.getTag())) { 
         Toast.makeText(Spojnice.this, "Tacno", Toast.LENGTH_SHORT).show(); 
         button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33)); 
         buttonClicked.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33)); 
         buttonClicked.setEnabled(false); 
         button.setEnabled(false); 
        } else { 
         Toast.makeText(Spojnice.this, "Netacno", Toast.LENGTH_SHORT).show(); 
         //buttonClicked.setEnabled(false); 
         //buttonClicked.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFCC99)); 
         //button.getBackground().clearColorFilter(); 
        } 
        buttonClicked = null; 
       }  
      } 
    }; 

回答

1

使用不便像按钮背景:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/drawable1" /> -- when button is pressed 
    <item android:drawable="@drawable/drawable2" /> -- button isn't pressed 
</selector> 
1

用途:

button.getBackground().setColorFilter(null); 

去除彩色滤光片。

+0

那么,我已经编辑了我的第一篇文章,正如你可以在我的第二段中看到的那样,这是非常独特的情况,所以我尝试了你的代码,但它不起作用。 – marjanbaz 2013-04-09 16:29:50