我一直试图在用户单击按钮时将图像更改为另一个图像。我实现了这个目标,但是当再次单击该按钮时,我还需要它切换回第一张图像。我一直做不到。我已经在下面发布了我的工作。
我本以为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));
}
}
});
}
}
答案 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));
}
会像保罗所说的那样工作。