カスタム コンポーネントからアクティビティを終了したいと考えています。質問は、カスタム コンポーネントからアクティビティの参照を取得する方法です。私が得ることができるのはContext
カスタムコンポーネントだけです。(コードは以下)に変換しようとしましたContext
が、問題ないようです。Activity
しかし、これについてはよくわかりません。おそらくもっと良い方法があります。ですから、このコードで十分かどうか、問題やリスクがあるかどうか教えてください。
public class MyCustomComponent extends RelativeLayout {
private Activity activity;
public MyCustomComponent(Context context, AttributeSet attrs) {
super(context);
Button btn = new Button(context);
btn.setText("finish");
addView(btn);
activity = (Activity)context; // here I want to get the Acitivity reference
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
MyCustomComponent.this.activity.finish();
}
});
}
}