Activity和Fragmen利用接口回调互相传递数据

本文通过实例展示了如何使用接口回调的方式在Activity和Fragment之间传递数据。包括Fragment向Activity传递数据以及Activity通知Fragment更新UI,详细解析了关键代码实现,提供了两种不同的场景应用。
摘要由CSDN通过智能技术生成

第一种:Fragment对Activity传递数据

首先上张Gif图,看起来直观一点,直入主题。自己手机录屏然后转的Gif图。

可以看出,通过点击InfoFragment界面的按钮来实现activity底部导航栏(这里我用的BottomNavigationBar)数字的更新。

InfoFragment.java主要代码

    int num = 0;

    public InfoCallback infoCallback;

    public interface InfoCallback {
        void updateBadgeCount(int num);
    }

    public void initView() {
        bt = (Button) view.findViewById(R.id.fragment_info_bt);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num++;
                infoCallback.updateBadgeCount(num);
            }
        });
    }
从一个 Activity 转到另一个 Activity 中的 Fragment,可以通过在目标 Activity 中添加一个用于显示 Fragment 的容器 View,并在该 Activity 中创建对应的 Fragment实现。 具体步骤如下: 1. 在目标 Activity 的布局文件中添加一个用于显示 Fragment 的容器 View。 ``` <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 2. 在目标 Activity 中创建对应的 Fragment,并将其添加到容器 View 中。 ``` MyFragment myFragment = new MyFragment(); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fragment_container, myFragment); fragmentTransaction.commit(); ``` 在上述代码中,MyFragment 是目标 Activity 中需要显示的 Fragment,R.id.fragment_container 是在布局文件中定义的容器 View 的 ID。 3. 在源 Activity 中使用 Intent 启动目标 Activity。 ``` Intent intent = new Intent(SourceActivity.this, TargetActivity.class); startActivity(intent); ``` 注意,这里启动的是目标 Activity,不是目标 Fragment。 这样就可以从一个 Activity 转到另一个 Activity 中的 Fragment 了。需要注意的是,在目标 Activity 中添加 Fragment 时,最好使用 FragmentManager 来管理 Fragment 的生命周期,可以避免一些不必要的问题。同时,在目标 Fragment 中也需要根据需要处理生命周期方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值