自带刷新的SwipeRefreshLayout控件

来源:互联网 发布:mac命令行在哪 编辑:程序博客网 时间:2024/06/10 14:56

xml:

<android.support.v4.widget.SwipeRefreshLayout    android:id="@+id/refresh_layout"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ListView        android:id="@+id/listview"        android:layout_marginLeft="24dp"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:cacheColorHint="@android:color/transparent"></ListView></android.support.v4.widget.SwipeRefreshLayout>

代码:

public class TestActivity extends Activity {    ListView listView;    private SwipeRefreshLayout refresh_layout = null;//刷新控件    private List<String> datas = new ArrayList<String>();//lis的数据    ArrayAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView= (ListView) findViewById(R.id.listview);        View  view=getLayoutInflater().inflate(R.layout.test,null);        listView.addHeaderView(view);        refresh_layout = (SwipeRefreshLayout) this.findViewById(R.id.refresh_layout);        refresh_layout.setColorSchemeResources(R.color.color1,R.color.color3);//设置加载圆圈的颜色        for (int i = 0; i < 30; i++) {            datas.add("item:"+i);        }        adapter = new ArrayAdapter(this, R.layout.item, R.id.txt, datas);        listView.setAdapter(adapter);        refresh_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                new Thread(new Runnable() {//下拉触发的函数,这里是睡1s然后加入一个数据,然后更新界面                    @Override                    public void run() {                        try {                            Thread.sleep(2000);                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                        datas.add(0,"item:refresh...");                        handler.sendEmptyMessage(0);                    }                }).start();            }        });    }    private MyHandler handler = new MyHandler();    class MyHandler extends Handler {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case 0:                    refresh_layout.setRefreshing(false);                    adapter.notifyDataSetChanged();                    break;                default:                    break;            }        }    }}


效果




0 0
原创粉丝点击