用android中的单个按钮更改textview颜色

时间:2018-03-27 12:39:29

标签: android button colors textview

这是我的代码:

   tv.setTextColor(getResourves().getColor(R.color.white));
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (the color is bgreen){
                tv.setTextColor(getResources().getColor(R.color.white));
            }else if (the color is white){
                tv.setTextColor(getResources().getColor(R.color.bgreen));
            }
        }
    });

其中,

<color name="bgreen">#ccff00</color>
<color name="white">#FFFFFF</color>

所以问题是我没有得到 - if()和if if()语句的代码。 有默认颜色的解决方案但在颜色字符串的情况下该怎么办。我想用相同的按钮在两种颜色之间切换。 提前谢谢。

5 个答案:

答案 0 :(得分:0)

尝试这样

btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           if(tv.getCurrentTextColor()== ContextCompat.getColor(context,R.color.white))
              tv.setTextColor(ContextCompat.getColor(context, R.color.bgreen));
          else if(tv.getCurrentTextColor()== ContextCompat.getColor(context,R.color.bgreen))
              tv.setTextColor(ContextCompat.getColor(context, R.color.white));
         }
    });

答案 1 :(得分:0)

 tv.setTextColor(getResourves().getColor(R.color.white));
btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

ColorDrawable buttonColor = (ColorDrawable) tv.getBackground();

int colorId = buttonColor.getColor();

if (colorID == R.color.green){
tv.setTextColor(getResources().getColor(R.color.white));
}

else if(colorID == R.color.white){
tv.setTextColor(getResources().getColor(R.color.bgreen));
}
}
    });

答案 2 :(得分:0)

     //Default color : White 
     boolean isWhite= true;
            tv.setTextColor(getResourves().getColor(R.color.white));

         btn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
            if (isWhite){

             isWhite= false;
             tv.setTextColor(getResources().getColor(R.color.bgreen));

         else{
             isWhite= true;
             tv.setTextColor(getResources().getColor(R.color.white));

            }

答案 3 :(得分:0)

尝试这样的事情

tv.setTextColor(ContextCompat.getColor(context, R.color.white));
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        ColorDrawable buttonColor = (ColorDrawable) btn.getBackground();
        int colorId = buttonColor.getColor();
        if (colorId == ContextCompat.getColor(context, R.color.bgreen)) {
            tv.setTextColor(ContextCompat.getColor(context, R.color.white));
        } else if (colorId == ContextCompat.getColor(context, R.color.white)) {
            tv.setTextColor(ContextCompat.getColor(context, R.color.bgreen));
        }
    }
});

答案 4 :(得分:0)

tv.setTextColor(getResourves().getColor(R.color.white));
int whiteTextColour=tv.getCurrentTextColor();
btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
if (tv.getCurrentTextColour()!=whiteTextColour){
tv.setTextColor(getResources().getColor(R.color.white));
}
else{
tv.setTextColor(getResources().getColor(R.color.bgreen));
}
}
    });