繁体   English   中英

android 如何添加具有不同活动的相同片段

[英]android how to add same fragments with different activities

活动A

  SectionPagerAdapter pageradapter = new SectionPagerAdapter(getSupportFragmentManager());
                pageradapter.addFragment(ContactsFragment.newInstance(), "PHONE CONTACTS");
                pageradapter.addFragment(CustomersFragment.newInstance(), "CUSTOMERS");
               viewPager.setAdapter(pageradapter);

活动 B

 SectionPagerAdapter pageradapter = new SectionPagerAdapter(getSupportFragmentManager());
                    pageradapter.addFragment(ContactsFragment.newInstance(), "PHONE CONTACTS");
                    pageradapter.addFragment(CustomersFragment.newInstance(), "CUSTOMERS");
                   viewPager.setAdapter(pageradapter);

我在我的 android 应用程序中使用片段和 viewpager。在活动 A 中,我添加了一个带有 viewpager 的片段,它工作正常。现在问题是我也想在活动 B 中使用相同的片段。

注意:当我在 viewpager 中添加相同的片段时,它的抛出错误就像

java.lang.ClassCastException: app.com.Contacts.ContactsActivity cannot be cast to app.com.Contacts.Activity.CustomersActivity

Fragment的代码中,您将活动转换为ContactsActivity 这就是为什么你不能重复使用它。 因此,您必须从Fragment的代码中删除此演员表。

如果您想调用附加了FragmentActivity function。 你可以用接口来做到这一点。 如果您的活动实现相同的接口。 Activity转换为Fragment代码中的接口就足够了。

class FragmentA {
   private void myMehod() {
      ((MyInterface)getActivity()).callMethodOnActivity()
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM