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 方法也是如此