我試圖以某種列表行具有標題而有些不具有標題的方式爲我的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
我收到一個異常。
任何方法如何解決這個問題。
這不是OP的要求。 – 2015-01-23 13:07:28