Android 中的 Activity 到 Fragment 的通信
创始人
2024-08-19 14:30:18
0

在Android中,Activity可以通过Fragment进行通信。以下是一种常见的解决方法,包含代码示例:

  1. 在Activity中定义一个接口(Interface)用于在Activity和Fragment之间传递数据。
public interface OnDataListener {
    void onDataReceived(String data);
}
  1. 在Activity中实现上述接口,并将其传递给Fragment。
public class MainActivity extends AppCompatActivity implements OnDataListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Fragment fragment = MyFragment.newInstance();
        ((MyFragment) fragment).setOnDataListener(this);

        getSupportFragmentManager().beginTransaction()
                .replace(R.id.fragment_container, fragment)
                .commit();
    }

    @Override
    public void onDataReceived(String data) {
        // 在Activity中接收到来自Fragment的数据
        Log.d("MainActivity", "Data received: " + data);
    }
}
  1. 在Fragment中定义一个成员变量来保存Activity传递过来的接口实例,并在需要的时候调用该接口。
public class MyFragment extends Fragment {

    private OnDataListener mOnDataListener;

    public static MyFragment newInstance() {
        return new MyFragment();
    }

    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        if (context instanceof OnDataListener) {
            mOnDataListener = (OnDataListener) context;
        } else {
            throw new RuntimeException(context.toString()
                    + " must implement OnDataListener");
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mOnDataListener = null;
    }

    // 在Fragment中调用接口方法,将数据传递给Activity
    private void sendDataToActivity(String data) {
        if (mOnDataListener != null) {
            mOnDataListener.onDataReceived(data);
        }
    }
}

通过上述步骤,Activity和Fragment之间就可以进行数据通信了。Activity通过实现接口来接收Fragment传递过来的数据,而Fragment通过调用接口方法将数据传递给Activity。

相关内容

热门资讯

实测辅助!新超凡辅助,wepo... 实测辅助!新超凡辅助,wepokerplus辅助(透视辅助开挂辅助安装)1、下载安装好wepoker...
曝光辅助!雀友会潮汕麻将开挂辅... 曝光辅助!雀友会潮汕麻将开挂辅助,川南九九辅助(热点推荐开挂辅助工具)>>您好:软件加薇136704...
原来有辅助!新广西老友辅助,破... >>您好:破解辅助插件wepoker确实是有挂的,很多玩家在这款破解辅助插件wepoker游戏中打牌...
推荐开挂!西兵互娱辅助多少钱,... 推荐开挂!西兵互娱辅助多少钱,上饶辅助(玩家必看科普开挂辅助下载)西兵互娱辅助多少钱ai黑科技系统规...
推荐辅助!新道游正版开挂,打大... 新道游正版开挂 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: 1、...
盘点开挂!微信小程序雀神挂件下... 盘点开挂!微信小程序雀神挂件下载,wepoker插件辅助(三分钟了解开挂辅助工具) 【无需打开直接搜...
正品辅助!天道联盟辅助软件,好... 正品辅助!天道联盟辅助软件,好友赣南脚本插件(透视有挂开挂辅助下载);无需打开直接搜索微信(1367...
关于辅助!财神13张有没有辅助... 关于辅助!财神13张有没有辅助工具,雀友会广东潮汕辅助(发现一款开挂辅助神器)您好:雀友会广东潮汕辅...
必看辅助!久久互娱科技,胡乐麻... 必看辅助!久久互娱科技,胡乐麻将辅助(大家学习交流开挂辅助神器)>>您好:软件加136704302中...
教会开挂!来来拼十辅助,潮汕掌... 教会开挂!来来拼十辅助,潮汕掌上娱破解器(辅助透视开挂辅助脚本)潮汕掌上娱破解器ai黑科技系统规律教...