一图胜万言(配上一张启舰大神的图,一个自定义控件写的很吊的大神):
这几天一直在写一个项目,果然只搞理论是不行的,距离上一次写项目已经快有半年了,今天无论是效率还是熟练度都大不如前,》》》
好了言归正传,今天要说的这个问题其实很简单——在java中的参数传递问题。(其实我承认,这个地方我只是知道对象传引用、普通类型传值,典型的理论派-。+),但是这个问题可大可小,我觉得还是要把这些缕得清清楚楚才好。
问题起源,一个蠢到家的是失败案例
其实今天写这篇文章完全是咋呼-。+,恰好是因为自己在做RecyclerView的万能适配器的时候出现的问题,先给大家引入一下当时的场景:
@Override
public void resultCallbackFromFragment(List<Contact> list) {
Toast.makeText(this, "修改成功!", Toast.LENGTH_SHORT).show();
......
contactList = list;
adapter.notifyDataSetChanged();
......
}
只留下了我们设计的代码,其他部分的代码全部打……了。接下来我用极其简单的组织语言介绍一下场景:
打开一个具有复选框的界面,退出时返回选中的数据,方法为一个回调方法,方法的效果是更新列表数据(contactList为我们传入RecyclerView的源数据)。
理论上说先给contactList更新为获取到的最新的值,然后调用notifyDataSetChanged方法,列表就刷新了,看上去一切都是那么的圆满。然后我们看一下效果:
不要吐槽这个App背景,因为是给我的小仙女做的-。+!
在上面的效果中,我们看到,在选中了两个联系人,点击确定