根据以前的颜色更改按钮背景颜色
Change button background color based on previous color
我有一个很简单的问题
假设我正在使用 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
}
}
尝试使用 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;
}
}
试试这个代码:
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"));
}
}
});
我有一个很简单的问题
假设我正在使用 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
}
}
尝试使用 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;
}
}
试试这个代码:
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"));
}
}
});