-2

I want to open a new activity by clicking on cardview(item) in Recyclerview. But my new activity is unable to start and application has stopped pops up

My adapter class is

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{

private List<Contacts> listitems;
private Context context;

public interface OnItemClickListener{
    void onItemClick(Contacts item);
}

public MyAdapter(List<Contacts> listitems, Context context) {
    this.listitems = listitems;
    this.context = context;
}

@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
    Contacts c = listitems.get(position);

    holder.t1.setText(c.getName());
    holder.t2.setText(c.getNumber());

}

@Override
public int getItemCount() {
    return listitems.size();
}

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    public TextView t1,t2;
    public ImageView image;

    public ViewHolder(View itemView) {
        super(itemView);

        itemView.setOnClickListener(this);

        t1 = (TextView) itemView.findViewById(R.id.textview1);
        t2 = (TextView) itemView.findViewById(R.id.textview2);

    }

    @Override
    public void onClick(View v) {
        itemView.getContext().startActivity(new Intent(context,Details.class));
    }
}
}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Omar Saleem
  • 137
  • 1
  • 3
  • 11

2 Answers2

0

just replace

itemView.getContext().startActivity(new Intent(context,Details.class));

with

context.startActivity(new Intent(context,Details.class));
sourabh kaushik
  • 523
  • 4
  • 20
0

you are using recycler view then you can use this in your activity not in adapter

recyclerview.onaddOnItemTouchListener(new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() {
    @Override
    public void onItemClick(View view, int position) {
      Activity_name.startActivity(new Intent(context,Details.class));
    }
}));
sourabh kaushik
  • 523
  • 4
  • 20