Android点击时更改变量值

时间:2016-12-22 12:39:27

标签: android variables onclicklistener

这是我的代码

final boolean identifier = true;
        if (i2 > i){
            if (identifier){
                v5.setOnClickListener(new View.OnClickListener(){
                    @Override
                    public void onClick(View v) {
                        identifier = false;
                    }
                });
            }
            if (!identifier){
                v5.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        identifier = true;
                    }
                });
            }
        }

但这似乎没有成功。 我想要的是当点击v5时,它将运行一个代码,它将改变v5 onClicklistener

4 个答案:

答案 0 :(得分:2)

试试这个。

  boolean identifier = false;

  v5.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    if(!identifier){
                     // first click
                     identifier=true;
                    }else{
                    // secondclick
                     identifier=false;
                    }
                }
            });

答案 1 :(得分:2)

  1. final声明中移除identifier,并将其设为class private field,以便您可以通过OnClickListener访问它。
  2. 只设置一个OnClickListener并让它检查identifier的值,如下所示:

    v5.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            identifier = !identifier; // switch the value to false/true
            // update your UI
        }
    });
    

答案 2 :(得分:0)

int identifier = 0;
        if (i2 > i){ 
            if (identifier=0){
                v5.setOnClickListener(new View.OnClickListener(){
                    @Override 
                    public void onClick(View v) {
                        identifier = 1;
                    } 
                }); 
            } 
            if (identifier!=0){
                v5.setOnClickListener(new View.OnClickListener() {
                    @Override 
                    public void onClick(View v) {
                        identifier = 0;
                    } 
                }); 
            } 
        } 

答案 3 :(得分:0)

let startTimeStr = '202012141614'; let endTimeStr = '202012141800'; let asDateTime = (d) => new Date( d.substring(0,4), d.substring(4,6) - 1, d.substring(6,8), d.substring(8,10), d.substring(10,12) ) let startTime = asDateTime(startTimeStr); let endTime = asDateTime(endTimeStr); let result = (endTime - startTime) / 60000; console.log(result);方法之前初始化identifier布尔值。也不要设为onCreate()。任何Final变量的值都无法修改。

final