无法从片段对象访问 public 方法
can not access the public methods from fragment object
我使用 Streets Of Boston's answer here
保存了片段对象
并取出了一个片段
Fragment fragment = myPagerAdapter.getRegisteredFragments(nowPosition);
if (fragment == null)
{
return;
}
但我无法从片段对象访问 public 方法
片段。
此方法在片段中
public void dowork()
{
//WORK!
}
public static void dowork2()
{
//WORK!
}
fragment.dowork(); -> 找不到工作
fragment.dowork2(); -> 找不到 dowork2
如何访问?
谢谢。
如果您尝试在示例中实例化的片段上调用这些方法,则需要将片段转换为 class。所以如果你的片段是 class MyFragment
你需要做
MyFragment fragment = (MyFragment) myPagerAdapter.getRegisteredFragments(nowPosition);
然后您将能够调用您在片段中声明的方法 class。
此外,应该在 class 上调用静态方法,而不是在实例上调用,因此
是正确的做法
MyFragment.dowork2();
如果该方法实际上是静态的。
您必须将该片段投射到片段的子class。
您无法访问这些方法的原因是因为它们在 fragment.They 中不可用,在您的 Fragment class.
实现中
我使用 Streets Of Boston's answer here
保存了片段对象并取出了一个片段
Fragment fragment = myPagerAdapter.getRegisteredFragments(nowPosition);
if (fragment == null)
{
return;
}
但我无法从片段对象访问 public 方法 片段。
此方法在片段中
public void dowork()
{
//WORK!
}
public static void dowork2()
{
//WORK!
}
fragment.dowork(); -> 找不到工作
fragment.dowork2(); -> 找不到 dowork2
如何访问?
谢谢。
如果您尝试在示例中实例化的片段上调用这些方法,则需要将片段转换为 class。所以如果你的片段是 class MyFragment
你需要做
MyFragment fragment = (MyFragment) myPagerAdapter.getRegisteredFragments(nowPosition);
然后您将能够调用您在片段中声明的方法 class。
此外,应该在 class 上调用静态方法,而不是在实例上调用,因此
是正确的做法 MyFragment.dowork2();
如果该方法实际上是静态的。
您必须将该片段投射到片段的子class。 您无法访问这些方法的原因是因为它们在 fragment.They 中不可用,在您的 Fragment class.
实现中