从另一个类调用片段方法的正确方法是什么?
我有一个类'ParseCommands.java':
public class ParseCommands {
public static Context context;
< call to FragmentSettings.doStuff() >
}
我想在我的片段中调用方法doStuff():
public class FragmentSettings extends PreferenceFragment {
private static Activity a;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void doStuff(String message) {
Toast.makeText(a, message, Toast.LENGTH_SHORT).show();
}
}
我通过标签应用我的片段,所以我不使用片段管理器来设置它们,但是我尝试了以下尝试调用方法,但它似乎不起作用:
Activity act = (Activity) context;
FragmentManager fm = act.getFragmentManager();
FragmentSettings fs = (FragmentSettings) m.findFragmentById(R.xml.fragment_settings);
fs.doStuff("it actually worked!");
我尝试将doStuff声明为静态并将其称为:
FragmentSettings.doStuff
这两种方法似乎都不起作用......
这样做的正确方法是什么?
答案 0 :(得分:0)
由于ParseCommands类中有上下文对象,因此可以使用LocalBroadCastManager向Fragment发送消息。您的片段必须具有BroadcastReceiver实现,并且从onReceive方法可以调用doStuff方法。
有关实施,请查看:how to use LocalBroadcastManager?