RecyclerView简单实用

RecyclerView适配器,继承的我自己的类的viewholder。继承RecyclerView.ViewHolder也可以。简单的布局没有多条目展示的都可以继承自己类的viewholder。布局我就不粘啦。
导包

 compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
public class Myadapter extends RecyclerView.Adapter<Myadapter.ViewHolder> {
    private List<User> list;
//获得控件id
    static class ViewHolder extends RecyclerView.ViewHolder {

        ImageView imageView;
        TextView textView;

        public ViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text);
            imageView = itemView.findViewById(R.id.images);
        }
    }
    public Myadapter(List<User> user) {
        this.list = user;
    }
    //创建ViewHolder实例
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //加载布局
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview, parent, false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }
    //用于对RecyclerView子项的数据进行赋值
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.textView.setText(list.get(position).getName());
      holder.imageView.setImageResource(list.get(position).getIm());
    }
    @Override
    public int getItemCount() {
        return list.size();
    }
}

MainActivity类

 private List<User> list = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //添加数据
        loadData();


        //获取id
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        Myadapter adapter = new Myadapter(list);
        recyclerView.setAdapter(adapter);
    }

    private void loadData() {
        User u1 = new User("a", R.drawable.a);
        User u2 = new User("g", R.drawable.g);
        User u3 = new User("b", R.drawable.b);
        User u4 = new User("c", R.drawable.c);
        User u5 = new User("d", R.drawable.e);
        User u6 = new User("e", R.drawable.f);
        User u7 = new User("f", R.drawable.h);
        list.add(u1);
        list.add(u2);
        list.add(u3);
        list.add(u4);
        list.add(u5);
        list.add(u6);
        list.add(u7);


    }

User的属性

public class User {
    private String name;
    private Integer im;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getIm() {
        return im;
    }

    public void setIm(Integer im) {
        this.im = im;
    }

    public User(String name, Integer im) {
        this.name = name;
        this.im = im;
    }
}

效果图
这里写图片描述

实现刷新加载
在之前的基础上添加以下代码就可以了。跟xlistview的使用基本相似。
需要到的jar包:

 compile 'com.jcodecraeer:xrecyclerview:1.3.2'

导完后这个 compile ‘com.android.support:appcompat-v7:26.+’会报错,不用管它不妨碍运行

public class MainActivity extends AppCompatActivity **implements XRecyclerView.LoadingListener** {
    private List<User> list = new ArrayList<>();
    **private XRecyclerView recyclerView;**
    **int page = 0;**
    private Myadapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //添加数据
        loadData();


          **//获取id
        recyclerView = (XRecyclerView) findViewById(R.id.x_recyc);
         //       对XRecycleView设置可以加载和刷新
        recyclerView.setLoadingListener(this);
        recyclerView.setPullRefreshEnabled(true);
        //设置刷新风格
        recyclerView.setLoadingMoreProgressStyle(ProgressStyle.BallPulseRise);**

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        adapter = new Myadapter(list);
        recyclerView.setAdapter(adapter);
    }

    private void loadData() {
        User u1 = new User("a", R.drawable.a);
        User u2 = new User("g", R.drawable.g);
        User u3 = new User("b", R.drawable.b);
        User u4 = new User("c", R.drawable.c);
        User u5 = new User("d", R.drawable.e);
        User u6 = new User("e", R.drawable.f);
        User u7 = new User("f", R.drawable.h);
        list.add(u1);
        list.add(u2);
        list.add(u3);
        list.add(u4);
        list.add(u5);
        list.add(u6);
        list.add(u7);

    }

    **@Override
    public void onRefresh() {
        //清空集合
        list.clear();
        page = 1;
        loadData();
        recyclerView.loadMoreComplete();
        recyclerView.refreshComplete();
        adapter.notifyDataSetChanged();
    }
    @Override
    public void onLoadMore() {
        page++;
        loadData();
        recyclerView.loadMoreComplete();
        recyclerView.refreshComplete();
        adapter.notifyDataSetChanged();
    }**


}

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值