在 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));
}
}
});
这是我的代码:
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));
}
}
});