这个问题为时已晚,但这是获取片段实例并调用片段中的方法的简单方法;您必须获取片段的实例,然后调用您的公共方法:
在您的片段中:
private static yourFragment instance;
然后在您的片段的onCreateView 中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
instance= this;
View v = inflater.inflate(R.layout.fragment_tools, container, false);
binding = FragmentToolsBinding.inflate(inflater, container, false);
return v;
}
而且在你的片段中,你必须有一个返回实例的静态方法:
public static yourFragment GetInstance()
{
return instance;
}
那么你的片段中有一个公共方法,你想像这样调用它:
public void theMethod()
{
Toast.makeText(getActivity(), "Test", Toast.LENGTH_SHORT).show();
}
然后您可以获取片段实例并像这样调用您的非静态公共方法:
yourFragment frag = yourFragment.GetInstance();
frag.theMethod();