在 android 中使用单个按钮更改文本视图颜色

Change textview color with single button in android

这是我的代码:

   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() 和else if() 语句的代码。 有默认颜色的解决方案,但在颜色字符串的情况下该怎么做。我想用同一个按钮在两种颜色之间切换。 提前谢谢你。

像这样尝试

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));
         }
    });
 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));
}
}
    });
     //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));

            }

尝试这样的事情

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));
        }
    }
});
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));
}
}
    });