如何将循环索引发送到另一个类?

时间:2011-06-29 18:03:04

标签: java android loops

我会将循环索引(变量 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);
        }
     });
}

如果您有任何想法或解决方案,我将非常感谢您的回复。 (对不起我的英文)

2 个答案:

答案 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”作为构造函数的参数。这是一个不使用匿名内部类的示例,因为您要创建具有不同信息的多个实例。