【问题标题】:Find out in which activity fragment was added找出在哪个活动片段中添加了
【发布时间】:2015-11-16 22:37:30
【问题描述】:

所以基本上我在两个不同的活动中使用相同类型的片段,我只想在片段中创建和初始化一些变量,前提是它是从特定活动添加的。我的问题是如何以编程方式找出片段是在哪个活动中添加的。

【问题讨论】:

    标签: android android-fragments android-activity android-fragmentactivity


    【解决方案1】:

    有两种主要的实现方式:

    模块化程度较低的方法,您只需使用 instanceof 进行检查

    if(getActivity() instanceof MyActivity)
    

    以及更模块化的方法,您在将片段添加到事务的那一刻将一些参数传递给片段:

    // this during the transaction to pass extra parameters to the fragment
    Fragment f = new MyFragment();
    Bundle b = new Bundle();
    b.putBoolean("doExtraCode", true);
    f.setArguments(b);
    

    然后在片段内部:

    // check if should execute extras
    Bundle b = getArguments();
    boolean doExtraCode = b == null? false: b.getBoolean("doExtraCode", false);
    

    【讨论】:

    • 我比第一个更喜欢第二种解决方案。片段应该尽可能地独立于承载它们的活动(这是使用片段的一种意义)。
    • 我完全同意@BobbyStJacques 的观点,“更模块化的方法”在绝对任何编码情况下总是更好。为了完整起见,我只展示了第一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多