在android中的适配器内创建动态文本视图

时间:2014-10-30 12:29:27

标签: android dynamic textview adapter

我正在尝试在适配器中创建动态文本视图。我有一个传递给适配器的对象列表。列表中的每个对象都包含一个键,该键本身就是一个列表。我正在根据此内部列表的大小创建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);
}

1 个答案:

答案 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()方法返回。