Android Java 如果 Int 颜色改变
Android Java If Int Color Change
我基本都中了:
int zander = 1;
if(zander == 1) {
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
int zander =+ 1;
System.out.println(zander+"green");
}
});
} else if(zander == 2){
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
((Button) android.findViewById(R.id.two)).setBackground(getResources().getDrawable(R.drawable.border_inner_red));
int zander =- 1;
System.out.println(zander+"red");
}
});
}
所以当我点击按钮时,背景颜色在 drawable.border_inner_green 中变为绿色。我试图增加一个整数值只是为了让用户第二次点击之后使背景变红。但不知何故,这行不通,我一直变绿。有没有人有一个想法?
int zander = 1;
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
if (zander == 1) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
zander = 2;
System.out.println(zander+"green");
} else {
((Button) android.findViewById(R.id.two)).setBackground(getResources().getDrawable(R.drawable.border_inner_red));
zander = 1;
System.out.println(zander+"red");
}
});
你需要设置一次onclicklistener,把你的逻辑放在里面
您有多个 int zander
变量声明 - 每个声明创建一个单独的值。您也应该只创建一个 onClickListener
处理程序。尝试将变量移出方法并使其成为 class:
中的一个字段
class SomeClass {
private int zander = 1;
void onCreate(Bundle savedInstanceState) {
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
int color;
if (zander == 1) {
color = R.drawable.border_inner_red;
zander++;
} else {
color = R.drawable.border_inner_green;
zander--;
}
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(color));
}
});
}
您有 2 个 zander
实例,一个在按钮点击外声明,另一个在点击按钮内声明。
当您点击按钮时,您所做的只是改变内部的梭鲈,而不是外部的。
基本上是这样
public void onClick(View v) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
int zander =+ 1;
System.out.println(zander+"green");
}
需要看起来像这样
public void onClick(View v) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
zander++;
System.out.println(zander+"green");
}
注意我在 onClick 中删除了梭鲈的 int
。另外,如果你要增加所有你应该做的 zander++
。您拥有的其他 onClick 方法也是如此
我基本都中了:
int zander = 1;
if(zander == 1) {
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
int zander =+ 1;
System.out.println(zander+"green");
}
});
} else if(zander == 2){
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
((Button) android.findViewById(R.id.two)).setBackground(getResources().getDrawable(R.drawable.border_inner_red));
int zander =- 1;
System.out.println(zander+"red");
}
});
}
所以当我点击按钮时,背景颜色在 drawable.border_inner_green 中变为绿色。我试图增加一个整数值只是为了让用户第二次点击之后使背景变红。但不知何故,这行不通,我一直变绿。有没有人有一个想法?
int zander = 1;
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
if (zander == 1) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
zander = 2;
System.out.println(zander+"green");
} else {
((Button) android.findViewById(R.id.two)).setBackground(getResources().getDrawable(R.drawable.border_inner_red));
zander = 1;
System.out.println(zander+"red");
}
});
你需要设置一次onclicklistener,把你的逻辑放在里面
您有多个 int zander
变量声明 - 每个声明创建一个单独的值。您也应该只创建一个 onClickListener
处理程序。尝试将变量移出方法并使其成为 class:
class SomeClass {
private int zander = 1;
void onCreate(Bundle savedInstanceState) {
button01.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(View v) {
int color;
if (zander == 1) {
color = R.drawable.border_inner_red;
zander++;
} else {
color = R.drawable.border_inner_green;
zander--;
}
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(color));
}
});
}
您有 2 个 zander
实例,一个在按钮点击外声明,另一个在点击按钮内声明。
当您点击按钮时,您所做的只是改变内部的梭鲈,而不是外部的。
基本上是这样
public void onClick(View v) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
int zander =+ 1;
System.out.println(zander+"green");
}
需要看起来像这样
public void onClick(View v) {
((Button) android.findViewById(R.id.one)).setBackground(getResources().getDrawable(R.drawable.border_inner_green));
zander++;
System.out.println(zander+"green");
}
注意我在 onClick 中删除了梭鲈的 int
。另外,如果你要增加所有你应该做的 zander++
。您拥有的其他 onClick 方法也是如此