zoukankan      html  css  js  c++  java
  • 使用谷歌提供的SwipeRefreshLayout下拉控件进行下拉刷新的实现数据的刷新

    package com.loaderman.swiperefreshdemo;
    
    import android.os.Bundle;
    import android.os.Handler;
    import android.support.v4.widget.SwipeRefreshLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import android.util.Log;
    import java.util.ArrayList;
    import java.util.List;
    /**
     * design库中包含V7包 V7包中包含V4包
     */
    public class MainActivity extends AppCompatActivity {
    
        private SwipeRefreshLayout swip_refresh;
        private RecyclerView recyclerView;
        private List<String> titleList;
        private MyAdapter adapter;
        private int page = 1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            initEvent();
            initData();
        }
        private void initData() {
            swip_refresh.post(new Runnable() {
                @Override
                public void run() {
                    swip_refresh.setRefreshing(true);
                }
            });
            getData(1, "Load");
        }
        private void initEvent() {
            swip_refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    Log.e("main", "refresh");
                    //titleList.clear();
                    getData(2, "Refresh");
                }
            });
        }
        private void initView() {
            swip_refresh = (SwipeRefreshLayout) findViewById(R.id.swip_refresh);
            recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
            recyclerView.setLayoutManager(new LinearLayoutManager(this));
            titleList = new ArrayList<>();
            adapter = new MyAdapter(titleList);
            recyclerView.setAdapter(adapter);
            //设置刷新时动画的颜色,可以设置4个
            swip_refresh.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light);
        }
        private void getData(final int page, final String content) {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    int startPosition = 10 * (page - 1);
                    int endPosition = 10 * page;
                    for (int i = startPosition; i < endPosition; i++) {
                        titleList.add(0,content + i);
                    }
                    adapter.notifyDataSetChanged();
                    swip_refresh.setRefreshing(false);
                }
            }, 3000);
        }
    }
    
    package com.loaderman.swiperefreshdemo;
    
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    
    import java.util.List;
    
    
    public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
    
        private List<String> list;
    
        public MyAdapter(List<String> list) {
            this.list = list;
        }
    
    
        @Override
        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.content_main, parent, false);
            return new MyViewHolder(view);
        }
    
        @Override
        public void onBindViewHolder(MyViewHolder holder, int position) {
            holder.txt_item.setText(list.get(position));
        }
    
        @Override
        public int getItemCount() {
            return list == null ? 0 : list.size();
        }
    
        public static class MyViewHolder extends RecyclerView.ViewHolder {
            TextView txt_item;
    
            public MyViewHolder(View itemView) {
                super(itemView);
                txt_item = (TextView) itemView.findViewById(R.id.txt_item);
            }
        }
    }
    

     activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swip_refresh" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView> </android.support.v4.widget.SwipeRefreshLayout>

     content_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/txt_item"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"/>
    

     效果图:

  • 相关阅读:
    MongoDB Query 的几个方法
    jQuery日期和时间插件(jqueryuitimepickeraddon.js)中文破解版使用
    entity framework使用技巧
    SQL Server TSQL高级查询
    Visual Studio 2012资源管理器里单击打开改为双击打开文件
    ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案
    排序算法时间测试比较
    读书笔记之:C++ STL 开发技术导引3
    如何判断整数x的二进制中含有多少个1
    面试题:2012民生银行总行笔试题
  • 原文地址:https://www.cnblogs.com/loaderman/p/6492431.html
Copyright © 2011-2022 走看看