ページ 1 / 1
異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する
Posted: 2013年3月01日(金) 17:54
by chin
現在、JAVAでタイトルのようなことをやりたいと考えています。
もちろん、JAVAではできないのですが、どうにかうまく実現することはできないでしょうか?
以下に実現したいコードを記述します。
よろしくお願いします。
コード:
class aaa {
CheckBox[] cb = new CheckBox[4];
boolean[] bl = new boolean [4];
void setter () {
for (int i=0; i<cb.length; ++i) {
cb[i].setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
cb[i].setEnabled(bl[i]);
}
});
}
}
}
Re: 異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する
Posted: 2013年3月02日(土) 17:16
by ISLe
匿名クラスではなくなりますけど。
コード:
class aaa {
CheckBox[] cb = new CheckBox[4];
boolean[] bl = new boolean [4];
void setter () {
class _OnClickListener implements View.OnClickListener {
int i;
public _OnClickListener(int i) {
this.i = i;
}
@Override
public void onClick(View v) {
cb[i].setEnabled(bl[i]);
}
}
for (int i=0; i<cb.length; ++i) {
cb[i].setOnClickListener(new _OnClickListener(i));
}
}
}
Re: 異なるメソッドで定義されたインナー・クラス内で非 final 変数を参照する
Posted: 2013年3月04日(月) 16:35
by chin
>ISLeさん
返信が遅れて申し訳ありませんでした。
まさにほしい回答でした。いつもご回答ありがとうございます。