有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我一直在尝试让一个图像在用户点击一个按钮时变成另一个图像。我实现了这个目标,但当再次单击按钮时,我还需要它切换回第一个图像。我一直无法做到这一点。我已经把我的作品贴在下面了

我本以为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) 个答案

  1. # 1 楼答案

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

    就像保罗说的那样

  2. # 2 楼答案

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

    private boolean mIsFirstTime=true;
    

    然后按如下所示,在点击按钮时使用它

        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++;替换poster=+1;,你的问题就会得到解决

    但是使用布尔条件比使用偶数条件更好、更简单