Activity向Fragment中传值

原创 2017年11月14日 19:07:18

activity向fragment中传值   
1。要传的值  放到Bundle对象里

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

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



代码:

MainActivity:


  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 :
  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. }  
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android之---Activity与Fragment之间的传值问题

Activity与Fragment之间的传值问题
  • u010936731
  • u010936731
  • 2017年01月12日 17:26
  • 1609

Android笔记--简单的Fragment和Activity的之间的数据交互(传值)

通过点击MainActivity里的按钮传一个字符串给MainActivity2的fragment里的textview,并显示出来。 1、在MainActivity下:通过intent先把字符串传给M...
  • weilexuexia
  • weilexuexia
  • 2016年03月12日 10:41
  • 2627

Activity和Fragment之间相互传值和调用方法

1。Activity—>Fragment用Bundle传值,... BlankFragment fragment = new BlankFragment(); Bund...
  • RichieZhu
  • RichieZhu
  • 2016年03月30日 15:23
  • 2132

安卓中回调实现Fragment向Activity传值

1.创建主布局文件
  • my_worldlet
  • my_worldlet
  • 2015年09月15日 20:31
  • 1367

activity向另一个activity中的fragment传值

在学习和项目运用中会用到activity想另一个activity中的fragment传值,在网上看了很多前辈的帖子,自己总结写了个传值方式。举个例子,在一个商场的app中,主界面中嵌套了4fragme...
  • qq_30710615
  • qq_30710615
  • 2016年02月24日 17:39
  • 1632

关于Activity向Fragment传值的问题

1.场景还原      前几天,由于项目模块中要在一个Activity使用FragmentTabHost嵌入Fragment导航,这就涉及到Activity向Fragment传值的问题,今天就Acti...
  • zhangxing52077
  • zhangxing52077
  • 2017年01月14日 21:17
  • 977

Fragment学习之Activity传递数据到Fragment

上一篇文章我们理解怎样使用接口回调的方式将数据从Fragment传递到Activity中,这里我们将探讨如何将数据从Activity传到Fragment中。 思路:把数据先保存到Bundle中,...
  • u010739551
  • u010739551
  • 2015年03月19日 16:18
  • 1298

Fragment向activity传值的接口回调方法

activity和fragment之间的数据传递主要分为三种:  (1) Activity传递数据给Fragment 在Activity中创建Bundle数据包,调用Fragment实例的se...
  • sinat_33561793
  • sinat_33561793
  • 2016年03月12日 10:08
  • 6710

Fragment向另一个Fragment进行传值通过Activity来传递在同一个Activity中

今天我们来探讨Fragment向另一个Fragment 进行传值。如何传?网上有说用接口等方法,今天我们用Activity来传递。 首先我们理一下思路。现在我有一个Fragment1    Fragm...
  • meiwan123
  • meiwan123
  • 2016年12月23日 10:51
  • 736

Activity和Fragment传递数据的两种方式

1、第一种方式,也是最常用的方式,就是使用Bundle来传递参数 MyFragment myFragment = new MyFragment(); Bundle bundle = n...
  • b10060224
  • b10060224
  • 2016年05月05日 19:50
  • 27187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activity向Fragment中传值
举报原因:
原因补充:

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