首先!!! First and least:happy Middel Autumn
其次!!! Second and least:happy National Day
进正题~~~~
我有一个A页面
A页面里面有一个B fragment
B fragment 里面有一个C dialog
C dialog里面有一个D Button
D button点击之后跳转到E Activity
E Activity里面有一个 F button
F button点击之后结束 E activity 返回C dialog
现在 我要在E 页面的listview 里面选择一个 item ,然后把这个Item的值传回给C dialog里面 并且显示在UI上面
当然首先可以肯定的是,用广播肯定可以做,但是我没用这种方法,为什么呐~ 因为我不会.....
其实一开始,我是想在点击D button 启动E activity的时候使用 startactivityforresult方法来返回的,然后发现....
这特么的居然不行(因为dialog不是acitivity )
然后我开始想办法把 Dialog里面的 handler 对象传进E activity里面,在点击F之后把item的值传回来,然后又发现
这特么的居然还是不行(请各位告诉我为什么不行)
所以,我现在明确的是,activity之间的传值我可以做到,activity传值到fragment 里面我也可以做到
而fragment传值到Dialog里面可以通过handler 也可以做到。。。。。。
现在大家就应该都知道怎么做了吧
首先在Dialog 里面new一个handler的对象,然后写一个getHandler方法
其次 在fragment里面也写一个getHandler 方法,返回的是Dialog.getHandler();
然后在 A activity里面new一个fragment 的对象,然后得到Dialog 里面的handler
重点来了,当我点击Dialog 里面的按钮启动activity的时候,如果用的是StartActivityForResult方法,那么返回的参数是在这个Dialog所在的Activity里面的
也就是说,A activity 是可以接收到E activity返回的参数的,然后通过handler 就可以把参数返回给Dialog 做相应的处理啦!!!
再次祝大家:
中秋快乐!!!
(还有三个小时就可以回家了 感觉爽爽哒)