0

从另一个类调用片段方法的正确方法是什么?

我有一个类'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

这两种方法似乎都不起作用...

这样做的正确方法是什么?

4

1 回答 1

1

由于您在 ParseCommands 类中有一个上下文对象,您可以使用 LocalBroadCastManager 向您的片段发送消息。您的片段必须有一个 BroadcastReceiver 实现,并且您可以从 onReceive 方法调用 doStuff 方法。

对于实施检查:如何使用 LocalBroadcastManager?

于 2012-12-06T09:00:48.067 回答