recyclerview适配器


package example.com.mvp02.view.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

import example.com.mvp02.R;
import example.com.mvp02.application.ImageLoaderUntils;
import example.com.mvp02.model.bean.DataBeans;

/**
 * author:Created by niuyuejiao on 2018/4/22.
 */

public class RecyclerAdapter extends RecyclerView.Adapter {

    private Context context;
    private List<DataBeans.DataBean> listAll;

    public RecyclerAdapter(Context context, List<DataBeans.DataBean> listAll) {
        this.context = context;
        this.listAll = listAll;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.item_layout, null);
        return new MyHolderView(view);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        MyHolderView viewHolder = (MyHolderView) holder;
        //赋值
        DisplayImageOptions oPtions = ImageLoaderUntils.getOPtions();
        ImageLoader.getInstance().displayImage(listAll.get(position).getPic_url(), viewHolder.img, oPtions);
        viewHolder.name.setText(listAll.get(position).getNews_title());
    }

    @Override
    public int getItemCount() {
        return listAll.size();
    }

    private class MyHolderView extends RecyclerView.ViewHolder {
        private TextView name;
        private ImageView img;

        public MyHolderView(View itemView) {
            super(itemView);
            name = itemView.findViewById(R.id.name);
            img = itemView.findViewById(R.id.img);
        }
    }
}
package example.com.mvp02.view.activity;

import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

import example.com.mvp02.R;
import example.com.mvp02.model.bean.DataBeans;
import example.com.mvp02.presenter.MainPresenter;
import example.com.mvp02.view.adapter.RecyclerAdapter;
import example.com.mvp02.view.interfaces.IMainView;

public class MainActivity extends BaseActivity<MainPresenter> implements IMainView, SwipeRefreshLayout.OnRefreshListener {

    private RecyclerView recycler;
    private RecyclerAdapter recyclerAdapter;
    List<DataBeans.DataBean> list = new ArrayList<DataBeans.DataBean>();
    private SwipeRefreshLayout swipe;
    private LinearLayoutManager linearLayoutManager;
    int page = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        setContentView(R.layout.activity_main);
        super.onCreate(savedInstanceState);

    }

    @Override
    protected MainPresenter setPresenter() {
        return new MainPresenter();
    }


    @Override
    protected void initView() {
        recycler = findViewById(R.id.recycler);
        //设置布局管理
        linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        recycler.setLayoutManager(linearLayoutManager);
        swipe = findViewById(R.id.swipe);
        //设置颜色
        swipe.setColorSchemeColors(Color.RED, Color.GREEN);
        //swipe监听
        swipe.setOnRefreshListener(this);
        //recycler滑动监听
        recycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                //获取可见的条目数
                int visibleItem = recyclerView.getChildCount();
                //布局的条目数
                int itemCount = linearLayoutManager.getItemCount();
                //第一个可见的条目数
                int firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition();
                if (firstVisibleItemPosition + visibleItem == itemCount) {
                    loadMore();
                }
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        basePresenter.detachView(this);
    }

    @Override
    public void onSuccess(DataBeans s) {
        Log.e("myMessage", "AAAAAA" + s.getData().get(0).getNews_title());
        loadData(s);
    }

    private void loadData(DataBeans s) {
        List<DataBeans.DataBean> data = s.getData();
        list.addAll(data);
        recyclerAdapter = new RecyclerAdapter(this, list);
        recycler.setAdapter(recyclerAdapter);
        recyclerAdapter.notifyDataSetChanged();

    }

    private void loadMore() {
        page++;
    }


    @Override
    protected void initData() {
        String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
        basePresenter.loadDataFromServer(path);

    }

    @Override
    public void onRefresh() {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                swipe.setRefreshing(false);//停止刷新
            }
        }, 2000);
    }
}

猜你喜欢

转载自blog.csdn.net/niu_yue_jiao/article/details/80042500