关闭

更多关于Fragment的使用

标签: fragmentargument
221人阅读 评论(1) 收藏 举报
分类:


承接上篇

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(),发送方即可接收到返回的数据.


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2418次
    • 积分:128
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    文章分类
    文章存档
    最新评论