2014-10-30 74 views
0

我正尝试在适配器内创建动态文本浏览。我有一个传入适配器的对象列表。列表中的每个对象都包含一个本身就是一个列表的键。我正在根据这个内部列表的大小创建文字视图。我的问题是创建的文字视图的数量不正确。它不仅获取当前对象的值,还获取其他对象的值。请帮助在适配器内创建动态文本浏览器android

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

发布您的代码,只有那么我们可以帮助你.. – 2014-10-30 12:33:09

+0

使用expandablelistview /适配器,而不是列表视图 – Selvin 2014-10-30 12:53:07

回答

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

+0

我将textview添加到一个线性布局,它是getview返回的视图的一部分 – user3008777 2014-10-30 13:37:20