0

I want to open new activity that is different in each recyclerview item.

I have read and I do not need an image item here : How to open a different activity on recyclerView item onclick

This is my Adapter

public class B001Adapter extends RecyclerView.Adapter {

private Context context;
private LayoutInflater inflater;
List<B001Data> udata = Collections.emptyList();

public B001Adapter(Context context, List<B001Data> data) {
    this.context = context;
    inflater = LayoutInflater.from(context);
    this.udata = data;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.datab001, parent, false);
    MyHolder holder = new MyHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

    MyHolder myHolder = (MyHolder) holder;
    final B001Data current = udata.get(position);

    myHolder.device_name.setText(current.device_name);
    myHolder.mac_address.setText(current.mac_address);
    myHolder.status.setText("Status:" + String.valueOf(current.status));
}

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

}
class MyHolder extends RecyclerView.ViewHolder {

    TextView device_name, mac_address, status;

    public MyHolder(View itemView) {
        super(itemView);
        context = itemView.getContext();
        device_name = (TextView) itemView.findViewById(R.id.txt_device_name);
        mac_address = (TextView) itemView.findViewById(R.id.txt_mac_address);
        status = (TextView) itemView.findViewById(R.id.txt_status);
    }

    public void onClick(AdapterView<?> parent, View view, int position {

        final Intent intent;
        switch (getAdapterPosition()){
            case 0:
                intent =  new Intent(context, MainActivity.class);
                break;

            case 1:
                intent =  new Intent(context, B001FacilityM.class);
                break;

            case 2:
                intent =  new Intent(context, B001HRD.class);
                break;
            default:
                intent =  new Intent(context, B001home.class);
                break;
        }
        context.startActivity(intent);
    }
}

}

I use volley to get Json data displayed on the recyclerView. Looking for your advice. Thanks

1 Answers1

0

First You Should assign id to layout file (R.layout.datab001), find out id using findViewsById in MyHolder() constructor and then set onClickListener to layout like myHolder.layout.setOnClickListener(....); in onBindViewHolder().

or check other answer RecyclerView onClick

Mohsin kazi
  • 532
  • 1
  • 8
  • 15