2014-10-30 75 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