Как отправить индекс цикла в другой класс? - PullRequest
1 голос
/ 29 июня 2011

Я отправлю значение индекса цикла (переменная 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 ]

4 голосов
/ 29 июня 2011

Вы можете сделать это

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);

                 }
             });

     }
0 голосов
/ 29 июня 2011

Создайте внутренний класс, который принимает 'i' в качестве параметра для конструктора.Это пример того, когда НЕ следует использовать анонимный внутренний класс, поскольку вы создаете несколько экземпляров с различной информацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...