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
2 楼
fly_to_the_winds
2012-05-31
请问你这个类里面的方法是什么?
private AtomicBoolean areWeDeadYet=new AtomicBoolean(false);
areWeDeadYet.set(true);
private AtomicBoolean areWeDeadYet=new AtomicBoolean(false);
areWeDeadYet.set(true);