can we call startActivityForResult from adapter?

Viewed 36351

is it possible to have method onActivityResume within adapter & call startActivityForResult?

4 Answers
//First Do
public Activity context;
public int REQUEST_CODE = 111;

public Adapter(Activity context, Data data) {
    this.context = context;
}

///Second Do
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    holder.button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, NextActivity.class);
            context.startActivityForResult(intent, REQUEST_CODE);
        }
    });
}

If you follow this code then you don't need to write it - ((Activity) context) - every time, before - .startActivityForResult(intent, REQUEST_CODE); - when you use startActivityForResult in Adapter.

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.

Related