onActivityResume
内にメソッドadapter
を入れてstartActivityForResult
を呼び出すことは可能ですか?
はい。アクティビティのコンテキストをアダプターのコンストラクター(ここではmContextとして保存)のアダプターに渡すだけです。 getViewで、単に呼び出す
((Activity) mContext).startActivityForResult(intent,REQUEST_FOR_ACTIVITY_CODE);
アダプターのコンストラクターでコンテキストを渡すために必ずしも渡す必要はありません。親ViewGroupからコンテキストを取得できます。 RecyclerViewアダプターのサンプル:
Context mContext;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
mContext = parent.getContext();
...
}
ListView BaseAdapterのサンプル
Context mContext;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
mContext = parent.getContext();
...
}
好きな場所で使用します
((Activity) mContext).startActivityForResult(intent, REQUEST_FOR_ACTIVITY_CODE);
オフコース...
((Activity) context).startActivityForResult(intent, 911);
注意 !!
MyActivity.thisのみをアクティビティからアダプターとしてコンテキストとして渡します。
getActivity();のみを渡すコンテキストとしてのフラグメントからアダプターへ。