Android 下拉刷新加载更多

来源:互联网 发布:dekker算法 编辑:程序博客网 时间:2024/05/16 07:33

找到一个封装好的下拉刷新加载更多的源码,适合新手学习

下载链接:点击打开链接


首先在项目中依赖封装好的ZrcListView,这里没有打成jar包,需要依赖下

然后代码开始

public class MainActivity extends Activity {    private ZrcListView listView;    private Handler handler;    private ArrayList<Student> msgs;    private int pageId = -1;    private MyAdapter adapter;    private static List<Student> list = new ArrayList<Student>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);
<span style="white-space:pre"></span>//这里动态往list中加入测试数据        for (int i = 0; i < 20; i++) {        Student student = new Student();        student.setAge(i+"岁");        student.setName("张三"+i);        list.add(student);}        listView = (ZrcListView) findViewById(R.id.zListView);        handler = new Handler();        // 设置默认偏移量,主要用于实现透明标题栏功能。(可选)        float density = getResources().getDisplayMetrics().density;        listView.setFirstTopOffset((int) (50 * density));        // 设置下拉刷新的样式(可选,但如果没有Header则无法下拉刷新)        SimpleHeader header = new SimpleHeader(this);        header.setTextColor(0xff0066aa);        header.setCircleColor(0xff33bbee);        listView.setHeadable(header);        // 设置加载更多的样式(可选)        SimpleFooter footer = new SimpleFooter(this);        footer.setCircleColor(0xff33bbee);        listView.setFootable(footer);        // 设置列表项出现动画(可选)        listView.setItemAnimForTopIn(R.anim.topitem_in);        listView.setItemAnimForBottomIn(R.anim.bottomitem_in);        // 下拉刷新事件回调(可选)        listView.setOnRefreshStartListener(new OnStartListener() {            @Override            public void onStart() {                refresh();            }        });        // 加载更多事件回调(可选)        listView.setOnLoadMoreStartListener(new OnStartListener() {            @Override            public void onStart() {                loadMore();            }        });        adapter = new MyAdapter();        listView.setAdapter(adapter);        listView.refresh(); // 主动下拉刷新    }
首先进行一些基本的设置,及listview绑定适配器


接着就是下拉刷新和加载更多的回调

 private class MyAdapter extends BaseAdapter{//定义适配器        @Override        public int getCount() {            return msgs==null ? 0 : msgs.size();        }        @Override        public Object getItem(int position) {            return msgs.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            TextView textView;            if(convertView==null) {                textView = (TextView) getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null);            }else{                textView = (TextView) convertView;            }            textView.setText(msgs.get(position).getName()+","+msgs.get(position).getAge());            return textView;        }    }    //用于测试存储数据的内部类    private class Student{    private String name;    private String age;    public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}        }

注释已经比较全了,就不多做解释,本人也是初学Android,大神勿喷!!!

0 0
原创粉丝点击