问题
is it possible to have method onActivityResume within adapter & call startActivityForResult?
回答1:
Yes. Just pass the context of the activity to the adapter in the adapter's constructor (here stored as mContext). In getView, just call
((Activity) mContext).startActivityForResult(intent,REQUEST_FOR_ACTIVITY_CODE);
回答2:
Not necessarily pass to pass context in adapter's constructor. You can get context from parent ViewGroup. Sample for RecyclerView adapter:
Context mContext;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
mContext = parent.getContext();
...
}
Sample for ListView BaseAdapter
Context mContext;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
mContext = parent.getContext();
...
}
And use it wherever you want
((Activity) mContext).startActivityForResult(intent, REQUEST_FOR_ACTIVITY_CODE);
回答3:
Offcource...
((Activity) context).startActivityForResult(intent, 911);
Caution !!
Only pass MyActivity.this from activity to adapter as context.
Only pass getActivity(); from fragment to adapter as context.
来源:https://stackoverflow.com/questions/11882927/can-we-call-startactivityforresult-from-adapter