package com.example.recyclerview_demo1.mvp.view.activity;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.recyclerview_demo1.R;
import com.example.recyclerview_demo1.mvp.model.bean.Tiyu;
import com.example.recyclerview_demo1.utils.OkHttpManager;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
import java.util.List;
public class Main2Activity extends AppCompatActivity {
private XRecyclerView xrv;
private OkHttpManager instance;
private MAdapter adapter;
private int operType = 1;
private int pageIndex = 1;
private String myurl = "http://365jia.cn/news/api3/365jia/news/headline?page=" + pageIndex;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
private List<Tiyu.DataBeanX.DataBean> datas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
xrv = findViewById(R.id.xrv);
datas = new ArrayList<>();
initXrv();
requestNetData();
xrv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
}
private void requestNetData() {
instance = OkHttpManager.getInstance();
instance.asyncJsonStringByURL(myurl, new OkHttpManager.Fun1() {
@Override
public void onResponse(String result) {
Gson gson = new Gson();
Tiyu tiyu = gson.fromJson(result, Tiyu.class);
List<Tiyu.DataBeanX.DataBean> list = tiyu.getData().getData();
if (operType == 1) {
datas.clear();
}
if (list != null) {
datas.addAll(list);
}
setAdapter();
}
});
}
private void initXrv() {
xrv.setPullRefreshEnabled(true);
xrv.setLoadingMoreEnabled(true);
xrv.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
operType = 1;
pageIndex = 1;
myurl = "http://365jia.cn/news/api3/365jia/news/headline?page=" + pageIndex;
requestNetData();
xrv.refreshComplete();
}
}, 1000);
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
operType = 2;
pageIndex++;
myurl = "http://365jia.cn/news/api3/365jia/news/headline?page=" + pageIndex;
requestNetData();
xrv.refreshComplete();
}
}, 1000);
}
});
}
public void setAdapter() {
if (adapter == null) {
adapter = new MAdapter();
xrv.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
}
class MAdapter extends RecyclerView.Adapter<MAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(Main2Activity.this, R.layout.xrv_item, null);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String title = datas.get(position).getTitle();
holder.tv.setText(title);
}
@Override
public int getItemCount() {
return datas == null ? 0 : datas.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final TextView tv;
public ViewHolder(View itemView) {
super(itemView);
tv = itemView.findViewById(R.id.tv);
}
}
}
}
XRecyclerView实现上拉加载更多和下拉刷新功能
猜你喜欢
转载自blog.csdn.net/gaoyiranblog/article/details/80772985
今日推荐
周排行