次のように呼び出される Activity のスーパータイプ メソッドを実装する Android アプリを構築してonCheckedChanged(CompoundButton buttonView, boolean isChecked)
います。
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
LinearLayout view = (LinearLayout) findViewById(R.id.some_view);
Animation anim = expand(view, true);
view.startAnimation(anim);
}
else {
LinearLayout view = (LinearLayout) findViewById(R.id.some_view);
Animation anim = expand(view, false);
view.startAnimation(anim);
}
}
そして、このメソッドは、次のように onCreate メソッドで Switch をリッスンするように設定されます。
mySwitch = (Switch) findViewById(R.id.my_switch);
mySwitch.setOnCheckedChangeListener(this);
some_view
問題は、このメソッドを だけでなく、他のいくつかのビューにも実装したいということです。このメソッドを数回コピー/貼り付けして some_view を変更したくないので、ビューを渡す何らかの方法が必要です。ただし、このメソッドをオーバーライドしているため、単純にメソッドに引数を追加することはできません。このメソッドにリスナーを設定したため、このメソッドが呼び出される直前に id をグローバル変数に設定することもできません。
したがって、私の質問は次のとおりです。メソッドをコピーして貼り付けて複数のビューで再利用する必要がないように、このメソッドに id を渡すにはどうすればよいですか?