作者:用心对待2502862725 | 来源:互联网 | 2023-10-11 16:49
前言之前讲过Activity向Fragment传值的具体方法,也附带讲了些Activity向Fragment传值需要注意的问题,然后讲了activity和fragment
前言
之前讲过Activity向Fragment传值的具体方法,也附带讲了些Activity向Fragment传值需要注意的问题,然后讲了activity和fragment对返回键的处理。那么,这节我们就来讲讲Fragment怎么向Activity传值吧。
今天涉及的知识有:
- Fragment 向 activity 传值的前提条件
- Fragment的代码处理
- Activity对于回传代码的接收处理
- 效果图和项目结构图
先来波效果图吧:
一. Fragment 向 activity 传值的前提条件
Fragment 向activity 传值,那么首先我们需要在fragment里面定义一个公开传值的接口类,如下:
public class FragmentB extends Fragment{
//其他代码省略
//......
/**fragment给activity回传值的接口**/
public interface OnFragmentListener{
/**object需要实现Serializable或Parcelable接口**/
void onFragment(String clsNameDetail, Object object);
}
}
其中,clsNameDetail作为是传到Activity中接收用于区分来自哪个Fragment的标志,我一般习惯用当前Fragment的类名,第二个参数 object 为传值的具体内容,最好规定一个泛型,方便传不同类型的值。
二. Fragment的代码处理
声明完回调接口后,Fragment还需要做以下几件事:
- 声明回调传值的接口对象
- 写一个用于传值设置回调监听的方法
- 设置回调监听
- 在fragment需要向activity传值的地方调用onFragment方法将值传给activity
具体步骤代码如下: