0

例えば:

for (int i = 0; i < 10; i++){
   SomeClass something = new SomeClass();
   something.setOnClickListener(new OnClickListener() {
      public void onClick(){
         doSomething(i);
      }
   });
}

変数を使用することは許可されていiません.Eclipseは私にi final.

4

2 に答える 2

6

ループ本体の変数にコピーiします。final

for (int i = 0; i < 10; i++){
   final int j = i;
   SomeClass something = new SomeClass();
   something.setOnClickListener(new OnClickListener() {
      public void onClick(){
         doSomething(j);
      }
   });
}
于 2013-11-09T06:21:14.637 に答える
1

できるよ

loop with i
  final int k = i
  annonymousClass
于 2013-11-09T06:22:26.700 に答える