我们可以从适配器调用startActivityForResult吗?

是否有可能在adapter内调用onActivityResume方法并调用startActivityForResult

Related of "我们可以从适配器调用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);