listView 平添addHeaderView和addFooterView以及handler.postDelayed的使用

listView 添加addHeaderView和addFooterView以及handler.postDelayed的使用
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;

public class HeaderFooterDemo extends ListActivity {
	private static String[] items={"lorem",
																	"pellentesque", "augue",
																	"purus"};
	private long startTime=SystemClock.uptimeMillis();
	private Handler handler=new Handler();
	private AtomicBoolean areWeDeadYet=new AtomicBoolean(false);
	
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.main);
		getListView().addHeaderView(buildHeader());
		getListView().addFooterView(buildFooter());
		setListAdapter(new ArrayAdapter<String>(this,
												android.R.layout.simple_list_item_1,
												items));
	}
	
	@Override
	public void onDestroy() {
		super.onDestroy();
		
		areWeDeadYet.set(true);
	}
	
	private View buildHeader() {
		Button btn=new Button(this);
		
		btn.setText("Randomize!");
		btn.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				List<String> list=Arrays.asList(items);
				
				Collections.shuffle(list);
				
				setListAdapter(new ArrayAdapter<String>(HeaderFooterDemo.this,
														android.R.layout.simple_list_item_1,
														list));
			}
		});
		
		return(btn);
	}
	
	private View buildFooter() {
		TextView txt=new TextView(this);
		
		updateFooter(txt);
		
		return(txt);
	}
	
	private void updateFooter(final TextView txt) {
		long runtime=(SystemClock.uptimeMillis()-startTime)/1000;
		
		txt.setText(String.valueOf(runtime)+" seconds since activity launched");
		
		if (!areWeDeadYet.get()) {
			handler.postDelayed(new Runnable() {
				public void run() {
				
					updateFooter(txt);	
				}
			}, 1000);
		}
	}
}

 

<?xml version="1.0" encoding="utf-8"?>
<ListView
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@android:id/list"
	android:layout_width="fill_parent" 
	android:layout_height="fill_parent"
	android:drawSelectorOnTop="true"
/>

 android:drawSelectorOnTop="false"注意这句话的意思 如果你设为true,那么选中的颜色会在上面 挡住button

设为false 则选中颜色在下面可以看见button 自己测试一下就明白了

1 楼 337240552 2012-04-24  
listView 平添addHeaderView和addFooterView以及handler.postDelayed的使用
2 楼 fly_to_the_winds 2012-05-31  
请问你这个类里面的方法是什么?
private AtomicBoolean areWeDeadYet=new AtomicBoolean(false);
areWeDeadYet.set(true);