Android Java如果Int Color Change

时间:2015-08-05 19:33:32

标签: java android if-statement colors int

我基本上得到了点击率:

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中的背景颜色变为绿色。我试图增加一个整数值只是为了说明用户的第二次点击以使之后的背景变红。但不知何故,这将不起作用我一直变绿。有没有人有一个想法?

3 个答案:

答案 0 :(得分:0)

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,并将逻辑放在那里

答案 1 :(得分:0)

您有int zander变量的多个声明 - 每个声明都会创建一个单独的值。您也应该只创建一个onClickListener处理程序。尝试将变量移到方法之外,并使其成为类中的字段:

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 :(得分:0)

你有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中删除了zander中的int。如果你正在增加所有你应该这样做zander++。您使用的其他onClick方法也是如此