(Android基础)activity 和 fragment互相传值
来源:互联网 发布:游戏编程模式 中文 pdf 编辑:程序博客网 时间:2024/06/04 20:11
一,activity往fragment传值,大家都知道不能通过fragment的带参数的构造函数来传值,为什么呢,原因如下:
Avoid non-default constructors in fragments: use a default constructor plusFragment#setArguments(Bundle)
instead
From the Fragment documentation:
Every fragment must have an empty constructor, so it can be instantiated when restoring its activity's state. It is strongly recommended that subclasses do not have other constructors with parameters, since these constructors will not be called when the fragment is re-instantiated; instead, arguments can be supplied by the caller with setArguments(Bundle)
and later retrieved by the Fragment withgetArguments()
.
我就不翻译了哈,英语不太哈,怕翻译错,那么我们就按照官方文档来,通过在setArguments(bundle)来进行传值,具体如下:
通常我们会先给fragment写一个单例模式,
public static TestFragment getInstance(String arg1,int arg2){
Bundle bundle = new Bundle();
bundle.putString("String",arg1);
bundle.putInt("int",arg2);
TestFragment fragment = new TestFragment();
fragment.setArguments(bundle);
returen fragment
}
然后在Fragment的oncreate()方法中直接getArguments()就能得到bundle对象了,通过bundle就能获取到传递过来的参数了。
二,fragment往activity传值,通过接口回调来传值,把fragment和activity联系到一起的方法是onAttach(Activity activity)方法,具体做法如下:
先在fragmen中onattach(Activity activity)方法中得到activity的对象,然后赋值给你自己定义的接口,具体做法如下:
private CallBack callBack;
interface CallBack{
void test(String str);
}
@override
public void onAttach(Activity activity){
callBack = (CallBack)getActivity();
}
然后在你需要传递参数的地方调用callBack.test("haha");到此在fragment中要做的工作就做完了,然后就是在需要获得fragment中的参数的activity中,先实现CallBack接口,然后实现这个接口的方法就ok了,这个时候就能获取到fragment中传过来的参数了。
- (Android基础)activity 和 fragment互相传值
- Android fragment 与Activity 互相传值。
- Android Fragment和Activity互相通讯
- Android Fragment和Activity互相通讯
- ANDROID安卓activity与fragment,activity之间互相传值(一)
- ANDROID安卓activity与fragment,activity之间互相传值(二)
- ANDROID安卓activity与fragment,activity之间互相传值(三)
- ANDROID安卓activity与fragment,activity之间互相传值(四)
- Android 界面类 Activity 和 Fragment 互相传递返回值解析
- Android Activity和Fragment
- android Fragment和Activity
- Android Fragment 和 Activity
- Android Fragment和Activity
- **ANDROID** activity和Fragment
- Android Fragment和Activity
- Android中fragment之间和Activity的传值、切换
- Android-Fragment和Activity的传值通信
- android Fragment与Activity交互,互相发数据(附图详解)
- 通过vmware-tools实现windows与虚拟机上的ubuntu文件共享
- Codeforces Round #227 (Div. 2) B
- 自定义Maven Hadoop项目骨架
- StreamAPI基础知识
- java入门
- (Android基础)activity 和 fragment互相传值
- 【深入Java虚拟机】之二:Class类文件结构
- 面试的问题
- jeecg使用心得
- caffe学习笔记16-caffe编译配置
- 训练16-HTML 处理多个字体降级
- 基本的数据结构和算法
- 支持向量机(SVM)(二)----对偶
- STL全排列函数 next_permutation prev_permutation 及拓展