RecyclerView简单实用

来源:互联网 发布:淘宝外用增大药有用吗 编辑:程序博客网 时间:2024/06/01 11:51

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

这里写图片描述

原创粉丝点击