-1

I want to click the button to add View into RecyclerView but implement methods of adapter are not being called.

Here is my code:

recyclerView = (RecyclerView)findViewById(R.id.lecturer_recycler_view);
recyclerView.setHasFixedSize(true);

recyclerView.setLayoutManager(new LinearLayoutManager(CourseCreating.this));

recAdapter = new CourseDetailAdapter();
recyclerView.setAdapter(recAdapter);

btnAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(CourseCreating.this, "click", Toast.LENGTH_SHORT).show();
            recAdapter.addSchedule(new Schedule());
        }
    });

CourseDetailAdapter.class

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

private static List<Schedule> scheduleList;

public static class ViewHolder extends RecyclerView.ViewHolder {

    public Spinner spnDay;
    public AppCompatEditText etxtRoom;
    public EditText etxtStarttime, etxtEndtime;
    public ImageButton btnDelete;

    public ViewHolder(View itemView) {
        super(itemView);
        spnDay = (Spinner)itemView.findViewById(R.id.detail_day);
        etxtRoom = (AppCompatEditText)itemView.findViewById(R.id.detail_room);
        etxtStarttime = (EditText)itemView.findViewById(R.id.detail_starttime);
        etxtEndtime = (EditText)itemView.findViewById(R.id.detail_endtime);
        btnDelete = (ImageButton)itemView.findViewById(R.id.detail_delete);
    }
}

public void addSchedule(Schedule schedule) {
    if(scheduleList == null) scheduleList = new ArrayList<>();
    scheduleList.add(schedule);
    Log.d("LOGIN", scheduleList.toString());
    notifyDataSetChanged();
}

@Override
public CourseDetailAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    Log.d("LOGIN", "Holder");
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_detail, parent, false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    Log.d("LOGIN", "Bindview");
}

@Override
public int getItemCount() {
    return 0;
}
}

I want to add detail_item layout for typing data, so I'm not sure I do correct way or not

Atef Hares
  • 4,715
  • 3
  • 29
  • 61
sgennrw
  • 156
  • 8

1 Answers1

0

Try changing the method getItemCount like this

@Override
public int getItemCount() {
  return (scheduleList != null)? scheduleList.size() : 0;
}
Sofiane Daoud
  • 868
  • 9
  • 21