Java 当我使用FragmentPagerAdapter将片段添加到活动中时,如何从活动中调用fragment方法?

Java 当我使用FragmentPagerAdapter将片段添加到活动中时,如何从活动中调用fragment方法?,java,android,android-fragments,android-studio-3.0,Java,Android,Android Fragments,Android Studio 3.0,我为MainActivity上的滑动视图创建了三个片段。这就是为什么我使用FragmentPagerAdapter在MainActivity上添加这些片段。一切都很顺利。现在我在片段1上创建了下面的方法 public void myToast(String text){ Toast.makeText(getActivity(), text, Toast.LENGTH_LONG).show(); } 如何从MainActivity调用/调用此方法 注意:我不能使用findFragmentById

我为
MainActivity
上的滑动视图创建了三个片段。这就是为什么我使用
FragmentPagerAdapter
MainActivity
上添加这些片段。一切都很顺利。现在我在片段1上创建了下面的方法

public void myToast(String text){
Toast.makeText(getActivity(), text, Toast.LENGTH_LONG).show();
}
如何从
MainActivity
调用/调用此方法


注意:我不能使用
findFragmentById()
findFragmentByTag()
方法,因为这些片段没有
id
tag

您可以使用这些方法-

private static String makeFragmentName(int viewPagerId, int index) {
        return "android:switcher:" + viewPagerId + ":" + index;
    }
以及查阅—

YourFragment yourfragment = (YourFragment) getSupportFragmentManager().findFragmentByTag(makeFragmentName(yourpager.getId(),the fragment number must be int /* 0, 1, 2 *\));
然后您可以在活动中使用片段的方法-

yourfragment.maketoast()

您想何时调用此方法?您的片段是否在
ViewPager
中?是,我的片段在“ViewPager”中。如果您的应用程序停止,则必须有堆栈跟踪。如果你把它贴出来会有帮助的我用了这个公式。但是当我使用yourfragment.maketoast()时,应用程序就停止了!我认识一个朋友。我是新手,但不是傻瓜。我像你的例子一样正确地投射了我的片段。但当我调用片段方法时,应用程序就停止了<代码>fragment_one f_one=(fragment_one)getSupportFragmentManager().findFragmentByTag(makeFragmentName(my_view_pager.getId(),0))我这样写。我正在使用Android Studio。如果我复制粘贴你的代码。工作室会告诉我错误的。Android工作室不会显示任何问题。它还创建了我的项目的apk文件。我用手机测试我的项目。安装apk文件后,当我打开应用程序时,我的手机显示警报不幸应用程序停止。