更多关于Fragment的使用

 承接上篇

Fragment如何接收argument参数

Fragment如何获取Activity接收的intent值呢?

主要是通过 Bundle 来 putString() 参数, 在创建Fragment实例的时候将Bundle作为参数 setArgument(),这样在 getArgument()的时候,就可以用Bundle 的 getString()拿到所要传递的参数, 即由Activity传递进来的intent值.


  1.  public static ContentFragment newInstance(String argument)  
  2.     {  
  3.         Bundle bundle = new Bundle();  
  4.         bundle.putString(ARGUMENT, argument);  
  5.         ContentFragment contentFragment = new ContentFragment();  
  6.         contentFragment.setArguments(bundle);  
  7.         return contentFragment;  
  8.     }  

  1.  private String mArgument;  
  2.  public static final String ARGUMENT = "argument";  
  3.   
  4.     @Override  
  5.     public void onCreate(Bundle savedInstanceState)  
  6.     {  
  7.         super.onCreate(savedInstanceState);  
  8.         // mArgument = getActivity().getIntent().getStringExtra(ARGUMENT);  
  9.         Bundle bundle = getArguments();  
  10.         if (bundle != null)  
  11.             mArgument = bundle.getString(ARGUMENT);  
  12.   
  13.     }  

不同宿主的Fragment数据传递与返回数据

使用Fragment的startActivityForResult,传递过去时因为Fragment存在 startActivityForResult和onActivityResult方法,通过Intent的putExtra即可实现数据传递.但是返回数据时, Fragment并不存在setResult方法, 所以依靠 getActivity().setResult()方法达到返回数据的效果(返回数据也是需要创建Intent对象putExtra的).以上就是整个过程, 但是有点需要注意的是,Fragment的onActivityResult是可以直接拿到Intent 对象的, 而接收方的Fragment到底能不能直接拿到发送方的Intent对象呢?

相同宿主的Fragment数据传递与返回数据

现在我们有两个相同宿主的Fragment, 需求是点击某一Fragment内部的点击事件,由这个Fragment传递数据到另一个Fragment.
在发送方创建目标Fragment时, 目标Fragment调用setTargetFragment(),用于记录当前fragment是由别的fragment启动,需要在完成操作后返回数据, 发送方还要创建onActivityResult方法来进行返回数据的接收.
目标Fragment返回数据时创建intent封装好需要传递数据手动调用getTargetFragment().onActivityResult(),发送方即可接收到返回的数据.


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值