xrecyclerview 实现下拉刷新下拉加载
来源:互联网 发布:js equals方法 编辑:程序博客网 时间:2024/06/05 16:55
xrecyclerview的
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
因为使用的是OkHttp请求数据 现在可以更换使用retrofit 请求数据
public class MainActivity extends AppCompatActivity { private XRecyclerView recyclerView; private MyAdapter adapter; ArrayList<SuperClass.NewslistBean> list; ArrayList<SuperClass.NewslistBean> newlist; String url = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=20&page=1"; String url1 = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=20&page ="; int page =1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (XRecyclerView) findViewById(R.id.show_recycler); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setPullRefreshEnabled(true); recyclerView.setLoadingMoreEnabled(true); recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { Toast.makeText(MainActivity.this,"刷新....",Toast.LENGTH_SHORT).show(); list.clear(); page=1; inData(); recyclerView.refreshComplete(); } @Override public void onLoadMore() { Toast.makeText(MainActivity.this,"加载....",Toast.LENGTH_SHORT).show(); addData();// ArrayList<SuperClass.NewslistBean> mylist = addData();// Toast.makeText(ShowActivity.this,mylist.toString(),Toast.LENGTH_SHORT).show();// list.addAll(mylist);// adapter.notifyDataSetChanged(); recyclerView.refreshComplete(); } }); inData(); } public void addData(){ // Toast.makeText(ShowActivity.this, url1+page, Toast.LENGTH_SHORT).show(); page++; String url3 = url1+page; newlist = new ArrayList<SuperClass.NewslistBean>(); OkHttp3Utils.getInstance().doGet(url3, new GsonObjectCallback<SuperClass>() { @Override public void onUi(SuperClass superClass) { //Toast.makeText(ShowActivity.this, superClass.getNewslist().toString(), Toast.LENGTH_SHORT).show(); newlist = (ArrayList<SuperClass.NewslistBean>) superClass.getNewslist(); list.addAll(superClass.getNewslist()); adapter.notifyDataSetChanged(); } @Override public void onFailed(okhttp3.Call call, IOException e) { } });// return newlist; } public void inData(){ list = new ArrayList<>(); OkHttp3Utils.getInstance().doGet(url, new GsonObjectCallback<SuperClass>() { @Override public void onUi(SuperClass superClass) { list = (ArrayList<SuperClass.NewslistBean>) superClass.getNewslist(); //Toast.makeText(getActivity(), list.toString(), Toast.LENGTH_SHORT).show(); adapter = new MyAdapter(MainActivity.this,list); recyclerView.setAdapter(adapter); } @Override public void onFailed(okhttp3.Call call, IOException e) { } }); } }
rxadapter适配器的内容
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { Context context; ArrayList<SuperClass.NewslistBean> list; public MyAdapter(Context context, ArrayList<SuperClass.NewslistBean> list) { this.context = context; this.list = list; } private enum Type{ Type_one,Type_two } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType == Type.Type_one.ordinal()){ View view = LayoutInflater.from(context).inflate(R.layout.item_recyclera,null); MyShowViewHolderA viewholder = new MyShowViewHolderA(view); return viewholder; }else if(viewType == Type.Type_two.ordinal()){ View view = LayoutInflater.from(context).inflate(R.layout.item_recyclerb,null); MyShowViewHolderB viewholder = new MyShowViewHolderB(view); return viewholder; } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(holder instanceof MyShowViewHolderA){ ((MyShowViewHolderA)holder).texta.setText(list.get(position).getTitle()); }else if(holder instanceof MyShowViewHolderB){ String bitUrl = list.get(position).getPicUrl(); ImageLoader loader = ImageLoader.getInstance(); loader.displayImage(bitUrl, ((MyShowViewHolderB)holder).head); ((MyShowViewHolderB)holder).textb.setText(list.get(position).getTitle()); } } @Override public int getItemCount() { return list.size(); } @Override public int getItemViewType(int position) { if(position%2==0) { return Type.Type_one.ordinal(); }else{ return Type.Type_two.ordinal(); } } class MyShowViewHolderA extends RecyclerView.ViewHolder{ TextView texta; public MyShowViewHolderA(View itemView) { super(itemView); texta = (TextView) itemView.findViewById(R.id.recyclera_text); } } class MyShowViewHolderB extends RecyclerView.ViewHolder{ TextView textb; ImageView head; public MyShowViewHolderB(View itemView) { super(itemView); textb = (TextView) itemView.findViewById(R.id.recyclerb_text); head = (ImageView) itemView.findViewById(R.id.recyclerb_head); } }}
阅读全文
0 0
- xrecyclerview 实现下拉刷新下拉加载
- XRecyclerView 实现下拉刷新和上拉加载更多
- xRecyclerView简单实现下拉刷新和上拉加载
- xRecyclerView简单实现下拉刷新和上拉加载
- Android XRecyclerView简单实现上拉刷新,下拉加载
- SwipeRefreshLayout下拉刷新,加载更多XRecyclerView
- XRecyclerView下拉刷新和上拉加载
- 可上拉加载和下拉刷新的XRecyclerView
- XRecyclerView上拉刷新下拉加载
- XRecyclerView 上拉刷新、下拉加载
- XRecyclerView 上拉加载 下拉刷新
- XRecyclerView下拉刷新,上拉加载
- 使用XRecyclerview下拉刷新,上拉加载
- XRecyclerView的上拉加载,下拉刷新
- mvp+retrofit+rxjava xrecyclerview实现多条目 下拉刷新 下拉加载 点击跳转
- XRecyclerView+上拉加载下拉刷新+多条目加载
- XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView
- XRecyclerView的多条目请求数据,可以实现上拉加载下拉刷新
- zoom:1
- 6.0新控件:TextInputLayout_TextInputEditText的使用
- 6.17
- Game of Robots
- 2.UE4的变量
- xrecyclerview 实现下拉刷新下拉加载
- centos安装最新版docker
- 事件分发
- Nonlinear Image Enhancement to Improve Face Detection in Complex Lighting Environment 翻译
- jQuery的题
- Java.Utils得到并验证4位数的验证码(没看懂,有待研究)
- mysql备份--心得
- GreenDao的简单存储
- 这是我的第一个程序