Android 下拉刷新加载更多

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

下载链接:点击打开链接


首先在项目中依赖封装好的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,大神勿喷!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值