本人最近在开发类似订票app的过程中,遇到一个问题,订票界面的Activity由三个fragment组成,当fragment中的listView选中某一item后,立即把结果返回给跳转到次Activty的上一个Activity。期间尝试了sendBroadCast(Intent)通信的方法,(PS:当fragment改为Activity时,它只能将结果返回给(或者按返回键只能跳转到呈现tabhost的Activity,而如果tabhost选项卡为fragment时,按返回键则可直接跳转到上一个Activity)呈现这三个Tabhost选项的Activity,而无法返回给“上一个”Activity——跳转到该tabhost的Activity),最后找到了一种比较稳定的方法。
“上一个”Activity——MainActivity:
@Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, StationActivity.class); if(v.getId() == R.id.from) { Bundle bundle = new Bundle(); bundle.putString("flag", "from"); intent.putExtras(bundle); startActivityForResult(intent, FROM_REQUEST); } if(v.getId() == R.id.to) { intent.putExtra("flag", "to"); startActivityForResult(intent, TO_REQUEST); } }
在MainActivity中添加接收返回结果的回调方法:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == FROM_REQUEST && resultCode == HotStationFragment.FROM_RESULT) { from.setText(data.getExtras().getString("city")); } if(requestCode == TO_REQUEST && resultCode == HotStationFragment.TO_RESULT) { to.setText(data.getExtras().getString("city")); } }
“下一个”Activity中的某个Fragment(其getActivity()方法得到的是该Fragment所在的Activity):
//为列表项设置点击监听事件 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = getActivity().getIntent(); Bundle bundle = intent.getExtras(); String city = (String) listView.getItemAtPosition(position); intent.putExtra("city", city); if(bundle.getString("flag").equals("from")) { getActivity().setResult(FROM_RESULT, intent); }else if(bundle.getString("flag").equals("to")) { getActivity().setResult(TO_RESULT, intent); } getActivity().finish(); } });
终于通过这种方式解决了将该fragmen中的返回结果直接返回给上一个Activity的问题!
相关推荐
Activity与Activity、Activity与Fragment、Fragment与Fragment的数据交互
在Activity如何改变Fragment的UI,如按返回键改变fragment里面textview的内容
activity与fragment的传递和fragment与Fragment的传递
Activity Fragment 生命周期研究
一个封装了启动模式的Fragment便捷使用库,方便构建单Activity 多Fragment轻量级框架
fragment 与 fragment 通信 fragment 向 activity 传值 activity 向 fragment 传值 代码是自己手敲的
通过activity+fragment搭建框架,更好的实现为用户的交互工作。
android activity fragment 交互 简明版 http://blog.csdn.net/q610098308/article/details/50098971
kotlin对activity和Fragment的简单封装,使得安卓开发越来越简洁。
Activity通知Fragment采用观察者模式,fragment之间通讯另建Function接口
Android下的Activity和Fragment的生命周期,详细的说明了Activity的状态保存,并说明Activity在屏幕旋转等特定的情况下的生命周期的变化
自己项目中用到fragment搭建框架,从网上找得一个demo,实现activity与fragment相互传值;fragment与fragment跳转。跟大家分享
activity动态加载fragment实例
在activity中添加Fragment
这是一个关于从一个activity跳到fragment,再从fragment跳到activity的页面之间的跳转!!!
FragmentActivity源码下载
Android 笔记-Fragment 与 Activity之间传递数据,使用setArgument方法的例子
activity与fragment以及fragment与fragment之间的通信
Activity与Fragment通过接口回调进行通信
在开发过程中不可避免的会出现fragment与fragment,fragment与activity之间的通信交互问题。 本章讲述如何实现fragment与activity之间的通信。 一、APP构成 MainActivity+底部导航栏; 二、通信目的 MainActivity中...