Activity与Fragment之间交互——Handler

佐手、 提交于 2020-02-09 18:10:18

问题:现在activity使用viewpager,viewpager‘的元素是fragment,该activity作为startActivityForResult的结果,所以在结束时需要传递当前信息给前intent,其中包括当前fragment的 实例中的变量。

说明:这种方法,在activity获得的只是一个类,但是不具备用户交互改变fragment的变量

        WillFragment fragment=(WillFragment) mAdapter.getItem(mViewPager.getCurrentItem());

解决:

Activity代码,接收fragment传递message:

    private Handler handler;
    private Intent backIntent;
.............
        setHandler(new Handler(new Callback() {
            
            @Override
            public boolean handleMessage(Message message) {
                // TODO Auto-generated method stub
                backIntent=(Intent) message.obj;
                return false;
            }
        }));

相应fragment代码,向activity传递Message:

Message message = new Message();
message.obj = intent;
WillActivity willActivity = (WillActivity) getActivity();
willActivity.getHandler().sendMessage(message);

 

Done

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!