Java 如何通过if/else语句更改onClick函数?
我一直在尝试让一个图像在用户单击按钮时变为另一个图像。我实现了这个目标,但我还需要它在再次单击按钮时切换回第一个图像。我一直无法做到这一点。我已经把我的作品贴在下面了 我本以为if/else语句会起作用,但我的第二次单击没有任何作用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
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;
}
}
}