Android Fragment 和 Activity相互传值

本文详细介绍了在Android开发中,Fragment如何与Activity进行数据传递。包括Activity向Fragment传值的方法,Fragment通过回调接口向Activity传值的过程,以及Fragment直接向另一个Activity传值的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Activity 给 Fragment传值
    1.1 Activity中代码
		//send data to fragment
        Bundle bundle = new Bundle();
        bundle.putString("landId", landId);
        pictureDisplayFragment.setArguments(bundle);
	1.2 Fragment 接受代码
		Bundle bundle = getArguments();
        String landId = bundle.getString("landId");
  1. Fragment 给所附属的 Activity传值

    2.1 首先在 fragment 中写回调接口和重写onAttach方法,并创建实例化

	//实例化接口
	private CallBackValue mCallBackValue;
		
	//定义一个回调接口  
    public interface CallBackValue{  
        public void SendBundle(Bundle bundle);  
    }
    //fragment 与 activity 通过onAttach() 方法回调,重写该方法即可
	@Override  
    public void onAttach(Activity activity) {  
        // TODO Auto-generated method stub  
        super.onAttach(activity);  
        //当前fragment从activity重写了回调接口得到接口的实例化对象  
        mCallBackValue = (CallBackValue) getActivity();  
    }  
	2.2 实现接口和回调后,Fragment 通过下面的代码向 Activity 传值。
	Intent picPlayActivity = new Intent(getActivity(), PicturePlayActivity.class);
	Bundle bundle = new Bundle();
	bundle.putString("siteName","地块名");
	mCallBackValue.SendBundle(bundle );
	2.3 Activity 中要继承 Fragment中实现的回调接口
	implements CallBackValue
	2.4 Activity 通过下面代码接受传值
 @Override  
    public void SendBundle(Bundle bundle) {  
    	//这里只是举例子,接收的参数的一般是外部变量
        String string = bundle.getString("siteName");
    } 
至此,Fragment 给 Activity 传值就完成了。
  1. Fragment 给另外的 Activity 传值

    3.1 Fragment 中实现代码

   		Intent picPlayActivity = new Intent(getActivity(), PicturePlayActivity.class);
   		
        Bundle toActivity = new Bundle();
        toActivity.putString("siteName","地块名");
        picPlayActivity.putExtras(toActivity);
        
        startActivity(picPlayActivity);
	3.2 Activity 中接受值代码
		Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
		String siteName = bundle.getString("siteName");
	很简单就完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值