【问题标题】:can not access the public methods from fragment object无法从片段对象访问公共方法
【发布时间】:2015-05-28 03:20:36
【问题描述】:

我使用Streets Of Boston's answer here保存了片段对象

并取出一个片段

 Fragment fragment = myPagerAdapter.getRegisteredFragments(nowPosition);
 if (fragment == null)
 {
     return; 
 }

但我无法从片段对象访问公共方法 片段。


这个方法在一个片段中

 public void dowork()
 {
     //WORK!
 }

 public static void dowork2()
 {
     //WORK!
 }

fragment.dowork(); -> 找不到工作
片段.dowork2(); -> 找不到dowork2

如何访问?
谢谢。

【问题讨论】:

    标签: java android android-fragments fragment


    【解决方案1】:

    如果您尝试在示例中实例化的片段上调用这些方法,则需要将片段强制转换为您的类。因此,如果您的片段属于 MyFragment 类,您需要这样做

     MyFragment fragment = (MyFragment) myPagerAdapter.getRegisteredFragments(nowPosition);
    

    然后你就可以调用你在片段类中声明的方法了。

    另外,静态方法应该在类上调用,而不是实例,所以这样做是正确的

     MyFragment.dowork2();
    

    如果该方法实际上是静态的。

    【讨论】:

      【解决方案2】:

      您必须将该片段转换为片段的子类。 您无法访问这些方法的原因是它们在 Fragment 中不可用。它们在 Fragment 类的实现中。

      【讨论】:

        猜你喜欢
        • 2016-09-09
        • 2022-12-13
        • 1970-01-01
        • 1970-01-01
        • 2011-06-30
        • 1970-01-01
        • 2016-12-27
        • 1970-01-01
        • 2013-09-11
        相关资源
        最近更新 更多