Activity向Fragment中传值

原创 2015年07月28日 22:54:44
activity向fragment中传值   
1。要传的值  放到Bundle对象里

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

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



代码:

MainActivity:


package com.qianfeng.activitytofragment;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

@SuppressLint("NewApi") 
public class MainActivity extends Activity {

	private EditText et1;
	private FragmentManager manager;
	private FragmentTransaction transaction;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        et1 = (EditText) findViewById(R.id.et1);
        
        manager = getFragmentManager();
        transaction = manager.beginTransaction();
        
        transaction.add(R.id.contents, new Fragment1());
        transaction.commit();
        
    }
    
    //点击按钮时  进行传值
    public void onclickBtn(View v){
    	switch (v.getId()) {
		case R.id.button1:
			Fragment1 fragment1 = new Fragment1();
			Bundle bundle = new Bundle();
			String strValue = et1.getText().toString().trim();
			bundle.putString("str", strValue);
			fragment1.setArguments(bundle);
			//如果transaction  commit()过  那么我们要重新得到transaction
			transaction = manager.beginTransaction();
			transaction.replace(R.id.contents, fragment1);
			transaction.commit();
			break;

		default:
			break;
		}
    }
    
    
    
}












Fragment :


package com.qianfeng.activitytofragment;

import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

@SuppressLint("NewApi") 
public class Fragment1 extends  Fragment{
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View view = inflater.inflate(R.layout.fragment_layout1, container, false);
		TextView textView1 = (TextView) view.findViewById(R.id.textView1);
		Bundle bundle = getArguments();//从activity传过来的Bundle
		if(bundle!=null){
			textView1.setText(bundle.getString("str"));
		}
		
		return view;
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android进阶之Fragment与Activity之间的数据交互

1概念1 为什么因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常。2 参考链接Activity和Fragment传递数据的两种方式【Fragme...
  • chenliguan
  • chenliguan
  • 2016年12月28日 11:24
  • 13452

(Android基础)activity 和 fragment互相传值

一,activity往fragment传值,大家都知道不能通过fragment的带参数的构造函数来传值,为什么呢,原因如下:         Avoid non-default constructo...
  • feng8888bbb
  • feng8888bbb
  • 2017年03月05日 14:03
  • 1479

Android-Fragment和Activity的传值通信

Android-Fragment和Activity的传值通信Activity向Fragment发送数据布局文件:
  • ACM_TH
  • ACM_TH
  • 2016年04月02日 11:12
  • 2889

Activity向Fragment传值

这里只介绍在创建Fragment对象的时候,怎么给Fragment传递值。因为最近比较忙,过一阵会发表具体介绍Fragment的使用文章 在原来看书学习的时候,书中介绍到很多传值得方法,但推荐使用B...
  • qq_16060713
  • qq_16060713
  • 2016年03月18日 12:01
  • 4599

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

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

activity向Fragment传值

.activity向Fragment传值:(1)Bundle方式: Fragment.setArguments(Bundle) 放值 Fragment.getArg...
  • u012437596
  • u012437596
  • 2016年02月24日 23:55
  • 617

Android Fragment之间参数传递通过Activity中的变量

在Activity中加载Fragment的时候、有时候要使用多个Fragment切换、并传值到另外一个Fragment、也就是说两个Fragment之间进行参数的传递、查了很多资料、找到两种方法、一种...
  • yueguanyun
  • yueguanyun
  • 2016年04月15日 13:10
  • 1779

关于Activity向Fragment传值的问题

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

Android_Fragment和activity传值(项目体现)

项目中使用fragment可以减轻activity的界面复杂度,与之带来的问题就是我们今天的博客内容,fragment给activity传递值. 项目需求描述,fragment中两个editext需要...
  • givemeacondom
  • givemeacondom
  • 2016年03月17日 19:42
  • 1190

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

通过点击MainActivity里的按钮传一个字符串给MainActivity2的fragment里的textview,并显示出来。 1、在MainActivity下:通过intent先把字符串传给M...
  • weilexuexia
  • weilexuexia
  • 2016年03月12日 10:41
  • 2766
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activity向Fragment中传值
举报原因:
原因补充:

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