2017-02-23 6 views
-1

RecyclerViewViewを追加するボタンをクリックしたいが、実装方法が呼び出されていない。ここで onCreateViewHolderがRecyclerViewで呼び出されていない

は私のコードです:

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; 
} 
} 

私はデータを入力するためdetail_itemレイアウトを追加したいので、私は私が

を正しい方法を行うかどうかわかりません

答えて

0

このようにgetItemCountメソッドを変更してみてください

@Override 
public int getItemCount() { 
    return (scheduleList != null)? scheduleList.size() : 0; 
} 
+0

作品です!どうもありがとうございます – eawarnong

関連する問題