名称中的变量
Variable in a name
final ImageView element = (ImageView) findViewById(R.id.element);
final ImageView name = (ImageView) findViewById(R.id.name);
Button nextButton = (Button) findViewById(R.id.buttonNext);
nextButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
element.setImageResource(image_elements[1]);
name.setImageResource(image_names[1]);
}
});
我的代码在硬编码时可以工作,但我想使用像 ++
和 --
这样的运算符。为什么我不能?示例如下。
element.setImageResource(image_elements[++]);
name.setImageResource(image_names[++]);
为什么这行不通,我怎样才能做到。
如果您的目标是在每次点击时移动到下一个元素,为什么不简单地使用一个 int 索引字段并递增它呢?
nextButton.setOnClickListener(new View.OnClickListener() {
private int i = 0;
public void onClick(View v) {
// parallel array anti-pattern below is a no-no
element.setImageResource(image_elements[i]);
name.setImageResource(image_names[i]);
i++;
// if you want to cycle elements of the array and
// to prevent array index out of bounds:
i %= image_elements.length;
}
});
final ImageView element = (ImageView) findViewById(R.id.element);
final ImageView name = (ImageView) findViewById(R.id.name);
Button nextButton = (Button) findViewById(R.id.buttonNext);
nextButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
element.setImageResource(image_elements[1]);
name.setImageResource(image_names[1]);
}
});
我的代码在硬编码时可以工作,但我想使用像 ++
和 --
这样的运算符。为什么我不能?示例如下。
element.setImageResource(image_elements[++]);
name.setImageResource(image_names[++]);
为什么这行不通,我怎样才能做到。
如果您的目标是在每次点击时移动到下一个元素,为什么不简单地使用一个 int 索引字段并递增它呢?
nextButton.setOnClickListener(new View.OnClickListener() {
private int i = 0;
public void onClick(View v) {
// parallel array anti-pattern below is a no-no
element.setImageResource(image_elements[i]);
name.setImageResource(image_names[i]);
i++;
// if you want to cycle elements of the array and
// to prevent array index out of bounds:
i %= image_elements.length;
}
});