android – 如何将数据从当前片段传递到以前的片段

android – 如何将数据从当前片段传递到以前的片段,第1张

概述我有两个片段A和B.我从片段A开始片段B.我需要在片段B关闭之前将数据从片段B传递到片段A.它就像startActivityForResult()的想法. 在片段A中我称之为片段B: FragmentB calendarDialog = new FragmentB(); calendarDialog.setTargetFragment(CurrentPanchang 我有两个片段A和B.我从片段A开始片段B.我需要在片段B关闭之前将数据从片段B传递到片段A.它就像startActivityForResult()的想法.

在片段A中我称之为片段B:

FragmentB calendarDialog = new FragmentB();                calendarDialog.setTargetFragment(CurrentPanchangDialog.this,1);                FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();                transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);                transaction.setCustomAnimations(R.anim.enter_from_left,R.anim.exit_to_right,R.anim.enter_from_right,R.anim.exit_to_left);                transaction.add(androID.R.ID.content,calendarDialog).addToBackStack(null).commit();

现在在片段B中我在关闭时调用这样的东西:

getTargetFragment().onActivityResult(                    getTargetRequestCode(),Activity.RESulT_OK,new Intent().putExtra("data","datafrom C")            );            getActivity().getSupportFragmentManager().popBackStackImmediate();

现在在Base活动中,我将重写onActivityForResult():

@OverrIDe    protected voID onActivityResult(int requestCode,int resultCode,Intent data) {        Fragment pFragment = getSupportFragmentManager().findFragmentByID(R.ID.content);        if (pFragment instanceof CurrentPanchangDialog) {            if (pFragment != null) {                pFragment.onActivityResult(requestCode,resultCode,data);            }        }        super.onActivityResult(requestCode,data);    }

我没有将数据从片段B返回到片段A.

解决方法 •使用如下方法创建一个接口:

public interface FragmentCallback {    voID onDataSent(String yourData);}

•在FragmentA中实现此接口并实现onDataSent()方法:

public class FragmentA implements FragmentCallback {    @OverrIDe    voID onDataSent(String yourData){        //Do something with your data    }}

•在Fragment B中声明此接口变量并创建公共setter方法:

public class FragmentB {private FragmentCallback fragmentCallback;    public voID setFragmentCallback(FragmentCallback callback) {        this.fragmentCallback = callback;    }}

•在某处使用FragmentA将其设置为FragmentB实例上的回调:

fragmentB.setFragmentCallback(this);

•从FragmentB到FragmentA的路径数据(如果要在FragmentB即将关闭时发送数据,您可以从片段的生命周期方法之一执行此 *** 作):

public class FragmentB {    public voID onDestroy() {        if(fragmentCallback != null){            fragmentCallback.onDataSent("Some data from FragmentB");        }        super.onDestroy();    }}
总结

以上是内存溢出为你收集整理的android – 如何将数据从当前片段传递到以前的片段全部内容,希望文章能够帮你解决android – 如何将数据从当前片段传递到以前的片段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1122613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存