我会将循环索引(变量 i )的值发送到另一个类。我决定使用 putExtra 但要做这个变量 i 必须是“最终”。你知道这是不可能的,因为这个变量改变了每个循环的值。
这是我的代码:
for (int i = 0; i<=20; i++) {
btn[i].getBackground().setColorFilter(0xFF00FF00,PorterDuff.Mode.MULTIPLY);
btn[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(newgame.this, game.class);
intent.putExtra(game.KEY_MISSION, i);
startActivity(intent);
}
});
}
如果您有任何想法或解决方案,我将非常感谢您的回复。 (对不起我的英文)
答案 0 :(得分:4)
你可以这样做
for (int i = 0; i<=20; i++) {
final int j = i;
btn[i].getBackground().setColorFilter(0xFF00FF00,PorterDuff.Mode.MULTIPLY);
btn[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(newgame.this, game.class);
intent.putExtra(game.KEY_MISSION, j);
startActivity(intent);
}
});
}
答案 1 :(得分:0)
创建一个内部类,将“i”作为构造函数的参数。这是一个不使用匿名内部类的示例,因为您要创建具有不同信息的多个实例。