Fragment传值到其他Activity(非FragmentActivity)





MainTabContacts.java是一个Fragment, TransferToActivity是一个普通的Activity,并没有继承FragmentActivity,checkedlist是一个

ArrayList<Contact>。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Fragment中,可以通过getActivity()方法获取到当前Fragment所依附的Activity对象,然后调用Activity中的方法来递数据。例如,在Fragment中定义一个接口,然后在Activity中实现该接口,就可以通过接口的回调方法将数据递给Activity。另外,也可以通过Intent来递数据,通过setArguments()方法将数据打包成Bundle对象,然后在Activity中通过getArguments()方法获取到数据。 ### 回答2: Fragment是Android中的一种重要的UI组件,可以动态地添加到Activity中。在Fragment中,有时候需要将数据递给它所属的Activity,这时候需要使用的方法。下面我们就来介绍一下FragmentActivity的几种方法: 1.使用接口Fragment中定义一个接口,Activity实现该接口并重写接口方法,在Fragment中可以通过该接口将数据递给Activity。 步骤如下: 1)在Fragment中定义一个接口: public interface PassValueInterface { void passValue(String value); } 2)将Activity强制转换成接口类型,并定义接口变量: PassValueInterface passValueInterface = (PassValueInterface) getActivity(); 3)在需要的地方调用接口中的方法: passValueInterface.passValue("要递的"); 4)在Activity中重写接口方法,获取过来的: @Override public void passValue(String value) { //获取过来的 } 2.使用BundleFragment中可以使用Bundle来递数据,将需要递的数据放入Bundle中,然后通过setArguments方法将Bundle递给Fragment。 步骤如下: 1)在Fragment中定义一个静态方法: public static Fragment newInstance(String value) { Fragment fragment = new Fragment(); Bundle bundle = new Bundle(); bundle.putString("value", value); fragment.setArguments(bundle); return fragment; } 2)通过getArguments方法获取过来的: String value = getArguments().getString("value"); 3)使用广播Fragment中发送广播,Activity中注册广播接收器并接收广播,从而实现递数据的目的。 步骤如下: 1)在Fragment中发送广播: Intent intent = new Intent(); intent.putExtra("value", "要递的"); getContext().sendBroadcast(intent); 2)在Activity中注册广播接收器,并在onReceive方法中获取递过来的: BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String value = intent.getStringExtra("value"); //获取过来的 } }; IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.example.fragment.broadcast"); registerReceiver(receiver, intentFilter); 综上所述,FragmentActivity的方法有很多种,根据实际需要选择合适的方法进行即可。 ### 回答3: Android中,Fragment是一个可以嵌入到Activity中的小型UI组件,Fragment类似于Activity,但其生命周期与Activity有些不同。在Android应用中,我们可以将多个Fragment嵌入到一个Activity中,根据需要显示或隐藏各个Fragment,从而实现灵活的UI设计。但是,如何在Fragment递数据给Activity呢? 在Fragment递数据给Activity,我们可以使用接口。具体实现步骤如下: 1.在Fragment中定义一个接口,用于将数据递给Activity。 public interface OnButtonClickListener{ void onButtonClick(String data); } 2.定义一个成员变量,用于保存接口实例。 private OnButtonClickListener buttonClickListener; 3. Fragment在onAttach()方法中将Activity强制转换成接口实例,以便在以后将数据递给Activity。 @Override public void onAttach(Context context) { super.onAttach(context); buttonClickListener = (OnButtonClickListener) context; } 4. Fragment中需要将数据递给Activity时,调用OnButtonClickListener接口的方法。 buttonClickListener.onButtonClick("递的数据"); 5.在Activity中实现OnButtonClickListener接口,重写接口方法,即可获取Fragment递过来的数据。 public class MainActivity extends AppCompatActivity implements OnButtonClickListener{ //... @Override public void onButtonClick(String data) { //获取Fragment递过来的数据 } } 总之,在Fragment递数据给Activity,我们需要定义一个接口,将数据递给Activity。这样做的好处是,FragmentActivity之间的耦合度降低,实现了解耦。同时,接口也是一种常见的组件通信方式,在Android开发中也常常见。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值