Android-Fragment与Fragment通信

本文介绍了在同一Activity中,如何实现不同Fragment之间的数据传递。详细讲述了三种方式:1) 直接调用Fragment对象及其方法;2) 通过Activity获取Fragment的视图及控件;3) 通过Activity获取View控件。并给出了具体的项目代码目录,以及展示了当在左侧Fragment输入文本,点击发送后,文本在右侧Fragment显示的最终效果。
摘要由CSDN通过智能技术生成

同一个Activity中不同Fragment之间传值:

  • 方式1:调用getFragmentManager().findFragmentById()获取Fragment对象,然后调用其方法。

  • 方式2:调用getFragmentManager().findFragmentById().getView().findViewById()根据id获取activity中的fragment对象,再获取fragment的视图,根据id获取视图中的控件对象。

  • 方式3:getActivity().findViewById()直接获取当前Activity,并根据id获取view控件对象。

  • 项目代码目录

  • LeftFragment.java

public class LeftFragment extends Fragment {
   
    private EditText mEditText;
    private Button mButton;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
   
        View view = inflater.inflate(R.layout.fragment_left, null);
        mEditText = view.findViewById(R.id.et_content);
        mButton = view.findViewById(R.id.btn_pass);
        mButton.setOnClickListener(new View.OnClickListener() {
   
            @Override
            public void onClick(View view) {
   
                String str = mEditText.getText().toString().trim();
//                方式1:可以调用findFragmentById()方法根据id获取fragment对象,调用fragment中的方法赋值
               /* RightFragment right = (RightFragment) getFragmentManager().findFragmentById(R.id.rightFragment);
                right.setTextView(str);*/

//               方式2:先调用getFragmentManager()获取fragmentManager对象,然后调用findFragmentById()方法获取右侧的fragment
//                然后再调用getView()获取右侧fragment的view对象,最后调用view的findViewById()获得赋值的控件
                /*TextView tv = getFragmentManager().findFragme
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值