【问题标题】:Assign getActivity() explicitly明确分配 getActivity()
【发布时间】:2015-09-30 16:53:26
【问题描述】:

如何通过名称显式分配 getActivity()?我有一个viewpager,其中有两个属于不同活动的片段。比如说FragmentA 和FragmentB。 FragmentA 扩展 BaseFragmentA,FragmentB 扩展 BaseFragmentB。 BaseFragmentA 属于 BaseActivityA,BaseFragmentB 属于 BaseActivityB。包含 FragmentA 和 FragmentB 的 ViewPagerAdapter 属于 MainActivity。所以当我在任何这些 Fragments 中执行 getActivity() 时,它会得到 MainActivity。但我实际上想要 ActivityA 或 ActivityB。 有什么解决方法吗?

【问题讨论】:

  • 我不明白你在问什么
  • 我认为片段不可能“属于”当前持有它们的活动之外的其他活动。
  • 这没有意义。一个片段一次只在一个活动中。
  • 和片段不“属于”活动

标签: android android-activity android-viewpager fragment


【解决方案1】:

在这两个片段中重写 onAttach 方法,您可以尝试使用以下代码

 Activity fragmentAttachedActivity;

    @Override
        public void onAttach(Context context) {
            super.onAttach(context);
            if(context instanceof ActivityA){
               fragmentAttachedActivity= (ActivityA)context;
            } else if(context instanceof ActivityB){
               fragmentAttachedActivity= (ActivityB)context;
            }
        }

【讨论】:

  • void onAttach(Activity activity) 已弃用,新方法为void onAttach(Context context)
  • @EpicPandaForce 抱歉我忘记了……谢谢提醒……我已经编辑过了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
相关资源
最近更新 更多