RecyclerView
2019-11-06 本文已影响0人
Suu9777
导致RecyclerView不刷新,代码不走Adapter的原因:
1,new Adapter时,传入的对象为null(地址为空),必须传入一个有地址的实例。
错误示例:
Adapter adapter = new Adapter(a)
正确示例:
A a=new A;
adapter = new Adapter(a) (正确)
2,传入正确实例后,又将该实例变为别的实例的引用。之后修改实例的值,调用adapter.notifyDataSetChanege()方法后recyclerView不刷新。
错误示例:
List a=new ArrayList();
adapter = new Adapter(a) ;
a=b;
adapter.notifyDataSetChanege();
正确示例:
List a=new ArrayList();
adapter = new Adapter(a) ;
a.clear();
a.addAll(b)
adapter.notifyDataSetChanege();
3,没有执行RecyclerView.setLayoutManager(layoutManager)方法。
正确示例:
Adapter a = new Adapter();
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
RecyclerView r = findviewById(R.id.recyclerView);
r.setLayoutManager(layoutManager);
r.setAdapter(a);