在fragment传递数据给非宿主Activity(记录)

最近在做个项目用到在一个Activity跳转到另一个Activity,这另一个Activity又包含两个fragment。功能如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一开始我在Fragment里用Intent传递数据,用startActivity,可以跳转界面但Activity接收不到数据。

后面我把startActivityForResult,在Activity可以接受到数据了。**但是!**因为用startActivityForResult的话,Activity会被重新onCreate,就是之前输入的内容都会清除。所以这个办法也不可行。

后面百度说用onSaveInstanceState、SharedPreferences也不可行。

最后搜到说在Fragment的父Activity定义一个静态变量的方法,终于可以了!

实现就是
在Fragment的父Activity里定义
public static String choice = null;
在Fragment里点击跳转时把内容赋值给该变量

SecondActivity.choice = value;

在原Activity取变量的值

edittext.setText(SecondActivity.choice);
SecondActivity.choice = null;

注意这里要重新把变量赋值为空,这样重新打开Activity时就不会赋值了
还有要把代码放在onStart里。
原Activity在跳转时只是onPause,重新被调用时不会再onCreate,而是直接onStart

困惑了我一早上的问题终于解决了,撒花!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值