我正在尝试在适配器中创建动态文本视图。我有一个传递给适配器的对象列表。列表中的每个对象都包含一个键,该键本身就是一个列表。我正在根据此内部列表的大小创建textviews。我的问题是创建的textview数量不正确。它不仅获取当前对象的值,还获取其他对象的值。请帮忙
List<TimelineDetailsObj> listOfTimelines = new ArrayList<TimelineDetailsObj>();
listOfTimelines = userFeedsList.get(positionInList).timeLinedetails;
for(int i = 0 ; i < listOfTimelines.size() ; i++) {
String reminderTitleString = listOfTimelines.get(i).learningModuleName
+ " - "
+ listOfTimelines.get(i).title
+ " ...";
TextView timelineTitleTV = new TextView(context, null, android.R.attr.textColorLink);
timelineTitleTV.setTag(cellElementsHolder);
CellElementHolder holder = (CellElementHolder) timelineTitleTV.getTag();
timelineTitleTV.setText(reminderTitleString);
// cellElementsHolder.ll_feed_timelinesLL_timeline.removeAllViews();
holder.ll_feed_timelinesLL_timeline.addView(timelineTitleTV);
}
答案 0 :(得分:0)
Adapter返回视图,因此每次调用getView时,1视图都会返回到listview。
现在你要创建一个textView,所以创建一个textview,但不要忘记在getView方法返回的那个视图中添加那个textview。
TextView tv=new TextView(this);
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams
((int)LayoutParams.WRAP_CONTENT,(int)LayoutParams.WRAP_CONTENT);
params.leftMargin=50;
params.topMargin=i*50;
tv.setText(str[i]);
tv.setTextSize((float) 20);
tv.setPadding(20, 50, 20, 50);
tv.setLayoutParams(params);
view.addView(tv) ;
view:由getView()方法返回。