当我点击它时,我正在尝试制作一个ImageView按钮。我有以下代码:
ImageView button01 = (ImageView) findViewById(R.id.button01);
button01.setOnClickListener(new OnClickListener() {
int button01pos = 0;
public void onClick(View v) {
if (button01pos == 0) {
button01.setImageResource(R.drawable.image01);
button01pos = 1;
} else if (button01pos == 1) {
button01.setImageResource(R.drawable.image02);
button01pos = 0;
}
}
});
但是由于某种原因,在Eclipse中,button01以红色加下划线并且出现错误:
不能引用内部类中的非final变量button01 用不同的方法定义
有谁知道为什么会这样做以及如何解决它?
由于
答案 0 :(得分:6)
以下是工作代码:
final ImageView button01 = (ImageView) findViewById(R.id.button01);
button01.setOnClickListener(new OnClickListener() {
int button01pos = 0;
public void onClick(View v) {
if (button01pos == 0) {
button01.setImageResource(R.drawable.image01);
button01pos = 1;
} else if (button01pos == 1) {
button01.setImageResource(R.drawable.image02);
button01pos = 0;
}
}
});
答案 1 :(得分:0)
试试这个,它对我有用。复选框可见性设置为“隐形”......! 这段代码在OnClickListener按钮里面......!
@Override
public void onClick(View v) {
ImageView iv_icon = (ImageView) findViewById(R.id.icon);
CheckBox cb = (CheckBox) findViewById(R.id.cb);
if (cb.isChecked()) {
iv_icon.setImageResource(R.drawable.image01);
cb.setChecked(false);
} else if (!cb.isChecked()) {
iv_icon.setImageResource(R.drawable.image02);
cb.setChecked(true);
} else {
// Nothing happens
}
}
答案 2 :(得分:0)
试试这个,
int button01pos = 0;
ImageView button01 = (ImageView) findViewById(R.id.button01);
button01.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (button01pos == 0) {
button01.setImageResource(R.drawable.image01);
button01pos = 1;
} else if (button01pos == 1) {
button01.setImageResource(R.drawable.image02);
button01pos = 0;
}
}
});