从自己的类调用片段方法

时间:2012-12-06 08:46:09

标签: android-fragments

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

有关实施,请查看:how to use LocalBroadcastManager?