android实现倒计时,最简单实现RecyclerView倒计时+SwipeRefreshLayout下拉刷新

本文通过实例代码展示了如何在Android应用中实现RecyclerView倒计时功能,并结合SwipeRefreshLayout实现下拉刷新操作。详细讲解了MainActivity.java、activity_main.xml、TimeUtil.java、item_count_time.xml、CountTimeAdapter.java以及CountTimeInfo.java等关键文件的代码实现,同时也提到了必要的gradle依赖。
摘要由CSDN通过智能技术生成


先上效果图:


RecyclerView + SwipeRefreshLayout

实现倒计时效果

MainActivity.java

package top.wintp.counttimedemo1;

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 java.util.ArrayList;
import java.util.List;

/**
 * 类描述:主要的Activity
 * <p>
 * 作者:  你的感冒清
 * <p>
 * qq:  337081267
 * <p>
 * CSDN:    http://blog.csdn.net/pyfysf
 * <p>
 * 个人博客:    http://wintp.top
 * <p>
 * 时间:   17-5-18
 * <p>
 * 邮箱:  pyfysf@163.com
 */
public class MainActivity extends AppCompatActivity
        implements SwipeRefreshLayout.OnRefreshListener {

    private SwipeRefreshLayout mSwrl_refresh;
    private RecyclerView mRv_list;
    private List<CountTimeInfo> mCountTimeInfos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //初始化View
        initView();

    }

    /**
     * 初始化View
     */
    private void initView() {
        mSwrl_refresh = (SwipeRefreshLayout) findViewById(R.id.swrl_refresh);
        mRv_list = (RecyclerView) findViewById(R.id.rv_list);

        //设置下拉刷新的监听
        mSwrl_refresh.setOnRefreshListener(this);

        //获取数据
        getData2Local();
    }

    @Override
    public void onRefresh() {
        //刷新数据
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                mSwrl_refresh.setRefreshing(false);
                getData2Local();
            }
        },2000);
    }

    /**
     * 从本地加载数据
     * 可以从服务器端加载数据
     */
    public void getData2Local() {
        //创建本地集合装载数据
        mCountTimeInfos = new ArrayList<>();
        //添加数据
        for (int i = 0; i < 100; i++) {
            CountTimeInfo countTimeInfo = new CountTimeInfo();

            countTimeInfo.setContent("item内容" + i);
            countTimeInfo.setCreateTime(TimeUtils.getWebsiteDatetime() - ((i + 1) * 10));
            countTimeInfo.setNeedTime((i+1)*10);

            mCountTimeInfos.add(countTimeInfo);
        }

        //设置布局管理器
        LinearLayoutManager llm = new LinearLayoutManager(this);
        mRv_list.setLayoutManager(llm);

        //设置数据适配器
        mRv_list.setAdapter(new CountTimeListAdapter(this, mCountTimeInfos));

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

趣学程序-shaofeer

送给作者一个bug通过秘籍!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值