我有一个非常简单的问题
考虑我正在使用getText()
方法在线检索字符串值
现在,根据字符串的值,我将按钮背景设置为红色和蓝色。
如果字符串值为红色,则按钮背景为红色,如果为蓝色,则背景为蓝色。
现在,如果我将onClicklistener
设置为同一按钮,我想更改其背景颜色。如果是红色,则只要将其按下即可将其更改为蓝色,如果是蓝色,则将其更改为红色。
mSolved = (Button) itemView.findViewById(R.id.book_solved);
mSolved.setText(g.getColorvalue());
if("Blue".equals(holder.mSolved.getText())){
mSolved.setBackgroundColor(BLUE);
}
if("Red".equals(holder.mSolved.getText())){
.mSolved.setBackgroundColor(RED);
}
mSolved.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(Background color is already BLue)
{
change to Red
}
else
{
Change to Blue
}
}
答案 0 :(得分:1)
尝试使用FLAG变量。与此类似。
mSolved = (Button) itemView.findViewById(R.id.book_solved);
mSolved.setText(g.getColorvalue());
boolean IS_BLUE = false;
boolean IS_RED = false;
if("Blue".equals(holder.mSolved.getText())){
mSolved.setBackgroundColor(BLUE);
IS_BLUE = true;
}
if("Red".equals(holder.mSolved.getText())){
mSolved.setBackgroundColor(RED);
IS_RED = true;
}
mSolved.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(IS_BLUE)
{
mSolved.setBackgroundColor(RED);
IS_RED = true;
IS_BLUE = false;
}
else if(IS_RED)
{
mSolved.setBackgroundColor(BLUE);
IS_BLUE = true;
IS_RED = false;
}
}
答案 1 :(得分:1)
尝试以下代码:
mSolved = (Button) findViewById(R.id.book_solved);
mSolved.setBackgroundColor(Color.parseColor("#009900"));
mSolved.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View tView) {
ColorDrawable buttonColor = (ColorDrawable) mSolved.getBackground();
int colorId = buttonColor.getColor();
// Log.i("INFO", "find color value for new color " + colorId);
if (colorId == -3407872) { // color is read
mSolved.setBackgroundColor(Color.parseColor("#009900"));
}
else {
mSolved.setBackgroundColor(Color.parseColor("#cc0000"));
}
}
});