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

And*_*mer 3 java android fragment android-fragments

我在这里使用Streets Of Boston的答案保存了片段对象

并拉出一个片段

 Fragment fragment = myPagerAdapter.getRegisteredFragments(nowPosition);
 if (fragment == null)
 {
     return; 
 }
Run Code Online (Sandbox Code Playgroud)

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


这个方法是一个片段

 public void dowork()
 {
     //WORK!
 }

 public static void dowork2()
 {
     //WORK!
 }
Run Code Online (Sandbox Code Playgroud)

fragment.dowork(); - >找不到dowork
fragment.dowork2(); - >找不到dowork2

怎么访问?
谢谢.

eme*_*sso 5

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

 MyFragment fragment = (MyFragment) myPagerAdapter.getRegisteredFragments(nowPosition);
Run Code Online (Sandbox Code Playgroud)

然后,您将能够调用在fragment类中声明的方法.

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

 MyFragment.dowork2();
Run Code Online (Sandbox Code Playgroud)

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