RecyclerView和XRecyclerView的布局和实现

需要导的依赖是:
1》 implementation(‘com.jcodecraeer:xrecyclerview:1.5.9’) {
exclude group: ‘com.android.support’
}
2》implementation ‘com.google.code.gson:gson:2.8.5’
3》 implementation ‘com.squareup.okhttp3:okhttp:3.12.0’
4》 implementation ‘com.mcxiaoke.next:recycler:1.5.3’
//RecyclerView和XRecyclerView的布局

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recy"
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
<com.jcodecraeer.xrecyclerview.XRecyclerView
    android:id="@+id/xrecy"
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

RecyclerView的MyAdapter
package com.example.day01.adapter;

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

import com.example.day01.R;
import com.example.day01.bean.MyData;

import java.util.ArrayList;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private ArrayList<MyData.DataBean> list;
private Context context;
private ViewHolder holder;

public MyAdapter(ArrayList<MyData.DataBean> list, Context context) {
    this.list = list;
    this.context = context;
}

@NonNull
@Override
public MyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.recy_list, null);
    holder = new ViewHolder(view);

    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    MyData.DataBean dataBean=list.get(position);
    holder.textRecy.setText(dataBean.getName());
}


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

public class ViewHolder extends RecyclerView.ViewHolder{

    private TextView textRecy;
    private ImageView imageRecy;
    public ViewHolder(View itemView) {
        super(itemView);
        textRecy=itemView.findViewById(R.id.textRecy);
        imageRecy=itemView.findViewById(R.id.imageRecy);

    }
}

}

XRecyclerView的Xadapter
package com.example.day01.adapter;

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

import com.example.day01.R;
import com.example.day01.bean.MyData;

import java.util.ArrayList;

public class Xadapter extends RecyclerView.Adapter<Xadapter.ViewHolder> {

private ArrayList<MyData.DataBean> mlist;
private Context context;

public Xadapter(ArrayList<MyData.DataBean> mlist, Context context) {
    this.mlist = mlist;
    this.context = context;
}


@NonNull
@Override
public Xadapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view=LayoutInflater.from(context).inflate(R.layout.xrecy_list,null);
    ViewHolder holder=new ViewHolder(view);

    return holder;
}

@Override
public void onBindViewHolder(@NonNull Xadapter.ViewHolder holder, int position) {
MyData.DataBean dataBean=mlist.get(position);
holder.textXrecy.setText(dataBean.getCreatetime());
}

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

public class ViewHolder extends RecyclerView.ViewHolder {
    private TextView textXrecy;
    private ImageView imageXrey;
    public ViewHolder(View itemView) {
        super(itemView);
        textXrecy=itemView.findViewById(R.id.textXrecy);
        imageXrey=itemView.findViewById(R.id.imageXrey);

    }
}

}

//RecyclerView和XRecyclerView的布局和实现的Mainactivity
public class MainActivity extends AppCompatActivity implements IVew {
private String mUrl = “http://www.zhaoapi.cn/product/getCatagory?page=”;
private ArrayList<MyData.DataBean> list = new ArrayList<>();
private ArrayList<MyData.DataBean> mlist = new ArrayList<>();
private RecyclerView recy;
private XRecyclerView xrecy;
private PerenerImpl perener;
private int i=1;
private MyAdapter adapter;
private GridLayoutManager manager;
private Xadapter xadapter;
private LinearLayoutManager layoutManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    perener = new PerenerImpl(this);
    perener.startRequest(mUrl,i);

    adapter = new MyAdapter(list,this);
    xadapter = new Xadapter(mlist,this);
    xrecy.setAdapter(xadapter);
    recy.setAdapter(adapter);

    manager = new GridLayoutManager(this,4);
    layoutManager = new LinearLayoutManager(this);
    xrecy.setLayoutManager(layoutManager);
    recy.setLayoutManager(manager);
}

@Override
public void setSuccess(MyData data) {
    list.addAll(data.getData());
    mlist.addAll(data.getData());
    xrecy.setLoadingListener(new XRecyclerView.LoadingListener() {
        @Override
        public void onRefresh() {
            mlist.clear();
            i=1;
            perener.startRequest(mUrl,i);
            xrecy.refreshComplete();
        }

        @Override
        public void onLoadMore() {

i++;
perener.startRequest(mUrl,i);
xrecy.refreshComplete();;
}
});
adapter.notifyDataSetChanged();
}

@Override
public void setError(String error) {

}

private void initView() {
    recy = (RecyclerView) findViewById(R.id.recy);
    xrecy = (XRecyclerView) findViewById(R.id.xrecy);
    xrecy.setPullRefreshEnabled(true);
    xrecy.setLoadingMoreEnabled(true);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值