Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过if/else语句更改onClick函数?_Java_Android - Fatal编程技术网

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

Java 如何通过if/else语句更改onClick函数?,java,android,Java,Android,我一直在尝试让一个图像在用户单击按钮时变为另一个图像。我实现了这个目标,但我还需要它在再次单击按钮时切换回第一个图像。我一直无法做到这一点。我已经把我的作品贴在下面了 我本以为if/else语句会起作用,但我的第二次单击没有任何作用 public class word1 extends AppCompatActivity { Button btnClick; ImageView image; int pooter = 1; @Override protected void onCreate

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

我本以为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));
        }
    }
});
}
}

将按照Paul所说的那样工作。

在下面的活动中声明一个名为
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,您的问题将得到解决带有
海报+=1
poster++


但是使用布尔条件比使用偶数条件更好、更简单。。。这不是增加价值的方法。你可以做
pooter++
pooter=pooter+1
pooter+=1谢谢你的工作。我想我误解了搜索中出现的某些内容。谢谢你建议使用布尔值。我一定要看看这个。
    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;
            }
    }
  }