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

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

  • 使用Cursor和ListView适配器来处理大量的数据
  • 在Android的列表视图内设置OnClick Listenerbutton
  • 如何获取AdapterView中当前显示的项目?
  • 基于ListItem特定variables在ListItem上膨胀布局
  • 如何删除列表查看所有项目
  • Android ArrayAdapter.Add方法不起作用
  • 创build适配器到自定义视图
  • 从适配器调用活动方法
  • 是。 只要将活动的上下文传递给适配器的构造函数中的适配器(这里存储为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);