Activity向Fragment中传值

转载 2016年05月30日 17:50:43
activity向fragment中传值   
1、要传的值  放到Bundle对象里

2、通过创建传递封Fragment 将bundle对象 通过 setArguments()传递到fragment

3、Fragment中 通过getArguments() 得到 bundle对象  就能得到里面的值



代码:

MainActivity:


[java] view plain copy
 print?
  1. package com.qianfeng.activitytofragment;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.app.Activity;  
  5. import android.app.FragmentManager;  
  6. import android.app.FragmentTransaction;  
  7. import android.os.Bundle;  
  8. import android.view.View;  
  9. import android.widget.EditText;  
  10.   
  11. @SuppressLint("NewApi")   
  12. public class MainActivity extends Activity {  
  13.   
  14.     private EditText et1;  
  15.     private FragmentManager manager;  
  16.     private FragmentTransaction transaction;  
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.           
  22.         et1 = (EditText) findViewById(R.id.et1);  
  23.           
  24.         manager = getFragmentManager();  
  25.         transaction = manager.beginTransaction();  
  26.           
  27.         transaction.add(R.id.contents, new Fragment1());  
  28.         transaction.commit();  
  29.           
  30.     }  
  31.       
  32.     //点击按钮时  进行传值  
  33.     public void onclickBtn(View v){  
  34.         switch (v.getId()) {  
  35.         case R.id.button1:  
  36.             Fragment1 fragment1 = new Fragment1();  
  37.             Bundle bundle = new Bundle();  
  38.             String strValue = et1.getText().toString().trim();  
  39.             bundle.putString("str", strValue);  
  40.             fragment1.setArguments(bundle);  
  41.             //如果transaction  commit()过  那么我们要重新得到transaction  
  42.             transaction = manager.beginTransaction();  
  43.             transaction.replace(R.id.contents, fragment1);  
  44.             transaction.commit();  
  45.             break;  
  46.   
  47.         default:  
  48.             break;  
  49.         }  
  50.     }  
  51.       
  52.       
  53.       
  54. }  

Fragment :


[java] view plain copy
 print?
  1. package com.qianfeng.activitytofragment;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.app.Fragment;  
  5. import android.os.Bundle;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.TextView;  
  10.   
  11. @SuppressLint("NewApi")   
  12. public class Fragment1 extends  Fragment{  
  13.     @Override  
  14.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  15.             Bundle savedInstanceState) {  
  16.         // TODO Auto-generated method stub  
  17.         View view = inflater.inflate(R.layout.fragment_layout1, container, false);  
  18.         TextView textView1 = (TextView) view.findViewById(R.id.textView1);  
  19.         Bundle bundle = getArguments();//从activity传过来的Bundle  
  20.         if(bundle!=null){  
  21.             textView1.setText(bundle.getString("str"));  
  22.         }  
  23.           
  24.         return view;  
  25.     }  
  26. }  

Activity之间、Fragment之间和Activity与Fragment之间的跳转

1、Activity之间的跳转有两种: (1)不需要返回值的跳转:startActivity(new Intent(this, Activity.class)); (2)带返回值的跳转: Activi...
  • wpj1119245135
  • wpj1119245135
  • 2016年04月14日 16:32
  • 12073

一个Activity管理多个Fragment切换

先放效果图。有些时候需要整个页面改变,但是又没必要创建一个新的Activity,这时候可以使用这个方法。大致思路是,创建的第一个界面为主界面,通过这个界面打开其它的Fragment。主界面的Fragm...
  • wshngyf
  • wshngyf
  • 2016年04月24日 17:58
  • 7387

Fragment与Activity的优缺点比较

项目中对Activity和Fragment使用都很多,它们都能用来写页面,那么什么时候用Activity,什么时候用Fragment? 关于 Android,用多个 activity,还是单 act...
  • TTKatrina
  • TTKatrina
  • 2016年06月30日 21:46
  • 4991

史上最简单的的Activity嵌套fragment

首先声明三点: 1、在需要嵌套Fragment的activity必须继承android.support.v4.app.FragmentActivity 2、嵌套的Fragment必须继承andro...
  • u014074418
  • u014074418
  • 2016年12月07日 17:00
  • 2263

Android Activity加载Fragment的一般简易方法

Android Activity加载Fragment的一般简易方法 首先写一个布局,布局里面以FrameLayout布局为佳, ...
  • zhangphil
  • zhangphil
  • 2015年11月20日 08:51
  • 4388

Fragment与Activity的相互通信(一)

今天在做项目的时候,用到了平时再也熟悉不过的Fragment,其中涉及到了Activity与Fragment之间的通信,仔细探究发现没有那么容易,这里总结一下在自己项目中的应用。 参考博客: h...
  • tyk0910
  • tyk0910
  • 2015年12月25日 23:01
  • 6986

fragment更新activity中的界面

最近项目中遇到这个需求 比较复杂 activity中有个抽屉 可以上拉下拉    抽屉里用viewpager管理三个fragment  每个fragment中都有recycleview   滑动冲突事...
  • duguodong2588
  • duguodong2588
  • 2016年08月28日 02:31
  • 1079

Fragment与Activity简单使用,包括二者之间的关联与生命周期

一、概论 随着Android系统的多样化,不仅仅在手机上,在平板、电视等设备上应用的也越来越多,这样就会有一个需要适应不同屏幕的问题。在Android3.0之后,谷歌推出了Fragment,Fragm...
  • xiaoli100861
  • xiaoli100861
  • 2015年10月28日 14:05
  • 1259

fragment和activity之间的区别

首先这里不准备论述fragment和activity的具体定义,用法和概念。只是建立在了解这两个东西的基础上谈区别。 在理解二者之间的区别的时候,只需要不断的问自己一个问题,就是fragment能做...
  • qq_35114086
  • qq_35114086
  • 2016年11月28日 11:11
  • 591

android Fragment与Activity交互,互相发数据(附图详解)

笔者近期看官方training,发现了很多有用又好玩的知识。其中,fragment与Activity通信就是一个。 fragment与Activity通信主要是两点: 1、fragment传递信息给...
  • Double2hao
  • Double2hao
  • 2016年03月26日 09:43
  • 6905
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activity向Fragment中传值
举报原因:
原因补充:

(最多只允许输入30个字)