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); } }