如何通过if / else语句更改onClick函数?

时间:2019-11-03 01:07:35

标签: java android

我一直试图在用户单击按钮时将图像更改为另一个图像。我实现了这个目标,但是当再次单击该按钮时,我还需要它切换回第一张图像。我一直做不到。我已经在下面发布了我的工作。

我本以为if / else语句可以解决问题,但第二次单击却无济于事。

public  class word1 extends AppCompatActivity {

Button btnClick;
ImageView image;
int pooter = 1;

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_word1);

btnClick=(Button)findViewById(R.id.buttcard1);
image=(ImageView) findViewById(R.id.imageCard1);
btnClick.setOnClickListener(new View.OnClickListener() {
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onClick(View v) {

        if(pooter % 2 == 0){
            pooter = +1;
            image.setImageDrawable(getDrawable(R.drawable.an));
        }else{
            pooter = +1;
            image.setImageDrawable(getDrawable(R.drawable.did));
        }
    }
});
}
}

2 个答案:

答案 0 :(得分:2)

在如下所示的活动中,声明一个名为mIsFirstTime的字段并将其初始值设置为 true

private boolean mIsFirstTime=true;

然后在 onClick按钮

中按以下方式使用它
    btnClick.setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
        @Override
        public void onClick(View v) {
          if(mIsFirstTime){

                image.setImageDrawable(getDrawable(R.drawable.an));
                mIsFirstTime=false;
            }else{

                image.setImageDrawable(getDrawable(R.drawable.did));
                mIsFirsTime=true;
            }
    }
  }

当然,正如其他人所说,如果您用poster=+1;poster+=1;

替换 poster++;,将可以解决您的问题

但是使用布尔条件比使用偶数条件要好得多。

答案 1 :(得分:0)

  if(pooter % 2 == 0){
        pooter += 1;
        image.setImageDrawable(getDrawable(R.drawable.an));
    }else{
        pooter += 1;
        image.setImageDrawable(getDrawable(R.drawable.did));
    }

会像保罗所说的那样工作。