activity 强转为listener 有什么用
RT 不懂为什么要这样
RT 不懂为什么要这样
2016-03-06
listener 是 fragment 的内部类,调用 listener.thank(),实际是执行activity的thank()。原理是父类指向子类,子类实现了父类的方法,执行的就是子类的方法。
所以看起来是fragment在执行自己的方法,实际是执行了activity的代码。(相当于fragment是告诉activiy,你准备要调用thank()了,所以具体的实现代码是由activity管理的)
也体现了封装的特性。因为把fragment把数据传给了acvitity之后,具体activity要怎么做,fragment管不着,也没必要管。(fragment只需要把数据扔过去,其他事一概不管)
其实,直接在 fragment 中调用 getActivity.thank(xxx); 也可以实现相同的功能。不过这个就违背了封装的性质了。
举报