在滚动RecyclerView
时,即使logtime.get(i).getTime()
数组中的数据没有变化,TextView
中的数据也会发生变化。仅当我们将数据放入动态生成的textview中时才会更改。以编程方式在recyclerview内添加textview onbindView适配器
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()内部。如果你想,我给你演示这个源代码。 –