上次我们说了一种Activity通过Bundle向Fragment传递数据的方法。这是一种Activity主动向Fragment传值的方法。适合同一个Fragmet类生成不同对象进行不同操作的时候使用。这次我们说一个Fragment主动和Activity交互的方法,其实就是在Activity中定义方法后Fragment中调用。我们从如下几点展开讲解。
1.这样的方法适合什么场景
- Fragment主动获取Activity中的某个数据。
- Fragment主动向Activity发送某个数据。
- Fragment主动调起Activity中的逻辑。
2.Fragment调用Activity具体步骤
- 在Activity中定义方法
public String getTitles(){
return "getTitle";
}
- 在Fragment中重写onAttach方法
@Override
public void onAttach(@NonNull Activity activity) {
super.onAttach(activity);
String title = ((MainActivity)activity).getTitles();
}
我们的示例是一个Fragment主动获取Activity数据的示例。如果我们在Activity中写一个set方法就变成了Fragment向Activity传值了。该方法灵活度很高,但要注意一点,不管是在Activity中写什么方法,都是由Fragment主动调起的。这一点一定要注意。如果需要Activity主动调起,就要在Fragment中写方法,然后在Activity中使用Fragment对象进行相应的调用。
3.Activity调用Fragment具体步骤
- 在Fragment中定义方法
public String getTitles(){
return "getTitle";
}
- 在Activity中需要调用Fragment方法的位置
Fragment fragment = new Fragment();
fragment.getTitles();