RecyclerView
의 데이터를 스크롤하면 logtime.get(i).getTime()
의 데이터가 변경되지 않더라도 TextView
의 데이터가 변경됩니다. 동적으로 생성되는 textview 내부에 데이터를 배치 할 때만 변경됩니다.프로그래밍 방식으로 recyclerview onbind 뷰어 어댑터 내부에 텍스트 뷰 추가
public void onBindViewHolder(PunchCardViewHolder holder, int position) {
PunchCardReport punchCardReport = punchCardReports.get(position);
holder.sNumber.setText(punchCardReport.getmSNumber());
holder.logDate.setText(punchCardReport.getmLogDate());
StringTokenizer stringTokenizer = new StringTokenizer(punchCardReport.getmLogTime(), ",");
List<LogTime> logtime = punchCardReport.getmLogTimeList();
for (int i = 0; i < logtime.size(); i++) {
Log.d(TAG, "onBindViewHolder: "+logtime.get(i).getTime());
}
LinearLayout.LayoutParams dim = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
for (int i = 0; i < logtime.size(); i++) {
TextView textView=new TextView(mContext);
textView.setLayoutParams(dim);
textView.setText(logtime.get(i).getTime());//the problem is here when we put data inside textview
holder.logTime.addView(textView);
}
}
@Override
public int getItemCount() {
return punchCardReports.size();
}
감사합니다 ...이 작동 ... –
이 해결책은 메모리 문제를 일으킬 수 있습니다. 텍스트보기 및 다른보기를 위해 XML을 작성해야합니다. OnBindViewHolder() 안의 뷰 만들기는 권장하지 않습니다. 원한다면 데모 소스 코드를 제공합니다. –