原地址:http://que2010.iteye.com/blog/1335798
为ListView增加Header (可动态修改其中的内容)
1.新建一个Layout:
demo_list_item_header_view.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <TextView
- android:layout_height="30sp"
- android:layout_width="wrap_content"
- android:textSize="20sp" android:id="@+id/headerTextView"
- android:text="TestListViewHeader" />
- </LinearLayout>
2.然后新建一个类,继承自LinearLayout用来显示上面的Layout:
DemoListHeaderView.java
- package com.zhang.test.view;
- import com.zhang.test.R;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- public class DemoListHeaderView extends LinearLayout {
- private static final String TAG = "DemoListHeaderView";
- private Context context;
- private TextView textView;
- public DemoListHeaderView(Context context) {
- super(context);
- this.context = context;
- View view = LayoutInflater.from(this.context).inflate(R.layout.demo_list_item_header_view, null);
- //以下两句的顺序不能调换,要先addView,然后才能通过findViewById找到该TextView
- addView(view);
- textView = (TextView) view.findViewById(R.id.headerTextView);
- }
- public void setTextView(String text) {
- textView.setText(text);
- }
- }
3.之后在ListView设置setAdapter之前,一定要在setAdapter之前
加上代码:
- DemoListHeaderView headerView = new DemoListHeaderView(context);
- headerView.setTextView("Header : ");
- listView.addHeaderView(headerView);