为ListView增加Header (可动态修改其中的内容)

原创
2014/02/21 20:31
阅读数 589

为ListView增加Header (可动态修改其中的内容)

1.新建一个Layout:
   demo_list_item_header_view.xml

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout  
  3.     android:layout_height="wrap_content"  
  4.     android:layout_width="wrap_content"  
  5.     xmlns:android="http://schemas.android.com/apk/res/android">    
  6.       
  7.     <TextView  
  8.         android:layout_height="30sp"  
  9.         android:layout_width="wrap_content"  
  10.         android:textSize="20sp" android:id="@+id/headerTextView"  
  11.         android:text="TestListViewHeader" />    
  12.   
  13. </LinearLayout>    

 

2.然后新建一个类,继承自LinearLayout用来显示上面的Layout:
   DemoListHeaderView.java

Java代码   收藏代码
  1. package com.zhang.test.view;     
  2.     
  3. import com.zhang.test.R;     
  4.     
  5. import android.content.Context;     
  6. import android.util.AttributeSet;     
  7. import android.view.LayoutInflater;     
  8. import android.view.View;     
  9. import android.widget.LinearLayout;     
  10. import android.widget.TextView;   
  11.   
  12. public class DemoListHeaderView extends LinearLayout {     
  13.     
  14.     private static final String TAG = "DemoListHeaderView";     
  15.     private Context context;     
  16.     private TextView textView;  
  17.   
  18.     public DemoListHeaderView(Context context) {     
  19.         super(context);     
  20.           
  21.         this.context = context;     
  22.         View view = LayoutInflater.from(this.context).inflate(R.layout.demo_list_item_header_view, null);   
  23.         //以下两句的顺序不能调换,要先addView,然后才能通过findViewById找到该TextView  
  24.         addView(view);     
  25.         textView = (TextView) view.findViewById(R.id.headerTextView);     
  26.     }  
  27.   
  28.     public void setTextView(String text) {     
  29.         textView.setText(text);     
  30.     }     
  31. }    
  32.    

 

 

 

3.之后在ListView设置setAdapter之前,一定要在setAdapter之前
   加上代码:

Java代码   收藏代码
  1. DemoListHeaderView headerView = new DemoListHeaderView(context);     
  2. headerView.setTextView("Header : ");     
  3. listView.addHeaderView(headerView); 
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
6 收藏
0
分享
返回顶部
顶部