关闭

Activity向Fragment中传值

317人阅读 评论(0) 收藏 举报
分类:
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. }  

1
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:99399次
    • 积分:2904
    • 等级:
    • 排名:第12154名
    • 原创:181篇
    • 转载:122篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论