いくつかのパラメーターを受け入れる静的メソッドがあります。メソッド内で新しいオブジェクトを作成し、それに新しいリスナーをアタッチしています。問題は、リスナー ブロックが外側の静的メソッド変数にアクセスする必要があることですが、それらを参照する方法がわかりません。これを非静的メソッドで実現する方法は知っていますが、静的メソッドでは実現できません。
コードは次のとおりです。
v.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
((Activity)*context*).startActivityForResult(*intent*, 0);
break;
}
return true;
}
});
アスタリスクで囲まれたコンテキスト変数とインテント変数は、静的メソッドに渡されるオブジェクトです。OnTouchListener は内部ブロックであるため、これらのオブジェクトを認識しません。どうすればそれらを参照できますか?