2015-01-21 43 views
1

我試圖以某種列表行具有標題而有些不具有標題的方式爲我的ListView創建節標題。所以我有三個XML佈局文件。 fragment_listview.xml包含<ListView>在getView()中膨脹兩個佈局以實現ListView節標題

row_listview.xml包含ListView

header_listview.xml爲節標頭的內容。

Feeds.java是我的模範班。

所以在我的適配器我有這樣的事情:

public class FeedsArrayAdapter extends ArrayAdapter<Feeds> { 

private Context context; 
private List<Feeds> feeds; 
private LayoutInflater vi; 

FeedsArrayAdapter(Context c, List<Feed> ff){ //initializes all the class member fields } 

public void getView(int position, View convertView, ViewGroup parent){ 

    Feeds f = feeds.get(position); 
    if(f.headerNeeded()){ 

     convertView = vi.inflate(R.layout.header_listview, null); 
     TextView textViewHeader = (TextView) convertView.findViewById(R.id.feed_header); 

     textViewHeader.setText(new SimpleDateFormat("dd/MM/yyyy").format(feed.date)); 
    } 
    else { 
     convertView = vi.inflate(R.layout.row_listview, null); 

     TextView textViewfeedHeading = (TextView) convertView.findViewById(R.id.feed_heading); 
     TextView textViewfeedSubheading = (TextView) convertView.findViewById(R.id.feed_subheading); 
     TextView textViewfeedDate = (TextView) convertView.findViewById(R.id.textViewDate); 
     ImageView imageViewfeedIcon = (ImageView) convertView.findViewById(R.id.feed_icon); 
     ImageView imageViewfeedBanner = (ImageView) convertView.findViewById(R.id.feed_banner); 

     textViewfeedHeading.setText(feed.title); 
     textViewfeedSubheading.setText(feed.subtitle); 
     textViewfeedDate.setText(new SimpleDateFormat("dd/MM/yyyy").format(feed.date)); 

    } 

    return convertView; 
} 

因此,這爲我們提供了這樣的事情:

---header1---- 
---header2---- 
___Row 3_____ 
___Row 4_____ 

我要的是:

-----header 1------ 
_____Row 1_______ 
-----header 2------ 
_____Row 2_______ 
_____Row 3_______ 
_____Row 4_______ 

如果我嘗試在if(true)中膨脹row.listview我收到一個異常。

任何方法如何解決這個問題。

回答

-1

使用可擴展的ListView與BaseExpandableAdapter

0

可以使用粘頭圖書館here