Activity与Fragment,Fragment与Fragment之间的通信
2016-11-04 22:41
381 查看
1 Activity与Fragment直接通信的基础
(1)第一点: Fragment可以调用getActivity()方法很容易的得到它所在的activity的对象,然后就可以查找activity中的控件们(findViewById())
例如:ViewlistView =getActivity().findViewById(R.id.list);
(2)第二点:activity也可以通过FragmentManager的方法查找它所包含的frament们
例如:ExampleFragment fragment =(ExampleFragment)getFragmentManager().findFragmentById(R.id.example_fragment
(一) Fragment与Fragment之间的通信----利用set/getArgments
注意:Fragment创建的时候只能是无参构造器来创建,不可以是其他的构造器
(1)第一步:在fragment1里面写public staticFragment01
newInstance(参数类型)
public staticFragment01 newInstance(intresId)
{ // 参数类型是int型的
Fragment01 fragment01 =newFragment01();
// 创建fragment对象
Bundle args =newBundle();
args.putInt("image",
resId); // 方法传递的数据放在bundle里面
fragment01.setArguments(args); // 存入到setArguments(args)里面
returnfragment01;
}
(2)第二步:在fragment2的onCreateView()里面进行数据的提取
if(getArguments!=null){
intres = getArguments().getInt("image");
mImgResult.setImageResource(res);
}
注意:以上的通信传递,只是同一个container下的情况
(二)Fragment与Fragment之间的通信---通过获取实例的方式
Fragment01向 Fragment02传递数据
第一步:Fragment02里面写如下的代码,给TextView加数据
public voidshowName(String name) {
mTvShow.setText(name);
}
第二步:在Fragment01里面初始化Fragment02的对象
mFragment02= (Fragment02)getActivity().getSupportFragmentManager().findFragmentByTag("RIGHT");
第三步:在Fragment01里面加监听,然后来调用Fragment02的方法,对Fragment02里面的数据进行更新
mFragment02.showName(mStrings[index]);
(三)Fragment与Fragment之间的通信----接口实现
注意:貌似回掉机制的原理,首先是Fragment1里面的数据发送到Fragment2里面来
(1)第一步:在fragment1定义监听的接口
public interface Callback{
public void showName(String name);
}
(2)第二步:fragment2实现这个接口,复写里面的方法
(3)第三步:在fragment1里面获取fragment2的实例,获取复写的方法,完成数据的传递
(1)第一点: Fragment可以调用getActivity()方法很容易的得到它所在的activity的对象,然后就可以查找activity中的控件们(findViewById())
例如:ViewlistView =getActivity().findViewById(R.id.list);
(2)第二点:activity也可以通过FragmentManager的方法查找它所包含的frament们
例如:ExampleFragment fragment =(ExampleFragment)getFragmentManager().findFragmentById(R.id.example_fragment
(一) Fragment与Fragment之间的通信----利用set/getArgments
注意:Fragment创建的时候只能是无参构造器来创建,不可以是其他的构造器
(1)第一步:在fragment1里面写public staticFragment01
newInstance(参数类型)
public staticFragment01 newInstance(intresId)
{ // 参数类型是int型的
Fragment01 fragment01 =newFragment01();
// 创建fragment对象
Bundle args =newBundle();
args.putInt("image",
resId); // 方法传递的数据放在bundle里面
fragment01.setArguments(args); // 存入到setArguments(args)里面
returnfragment01;
}
(2)第二步:在fragment2的onCreateView()里面进行数据的提取
if(getArguments!=null){
intres = getArguments().getInt("image");
mImgResult.setImageResource(res);
}
注意:以上的通信传递,只是同一个container下的情况
(二)Fragment与Fragment之间的通信---通过获取实例的方式
Fragment01向 Fragment02传递数据
第一步:Fragment02里面写如下的代码,给TextView加数据
public voidshowName(String name) {
mTvShow.setText(name);
}
第二步:在Fragment01里面初始化Fragment02的对象
mFragment02= (Fragment02)getActivity().getSupportFragmentManager().findFragmentByTag("RIGHT");
第三步:在Fragment01里面加监听,然后来调用Fragment02的方法,对Fragment02里面的数据进行更新
mFragment02.showName(mStrings[index]);
(三)Fragment与Fragment之间的通信----接口实现
注意:貌似回掉机制的原理,首先是Fragment1里面的数据发送到Fragment2里面来
(1)第一步:在fragment1定义监听的接口
public interface Callback{
public void showName(String name);
}
(2)第二步:fragment2实现这个接口,复写里面的方法
(3)第三步:在fragment1里面获取fragment2的实例,获取复写的方法,完成数据的传递
相关文章推荐
- 详解Android activity与fragment之间的通信交互
- Android——Fragment和Activity之间的通信+Frangment生命周期
- Android Fragment与Activity之间的相互通信实例代码
- Android面试篇之Activity与Fragment、Fragment与Fragment之间的通信
- Android Activity和Fragment之间的常规通信方式
- 黑马程序员——fragment 与Activity 之间的通信
- 详解Fragment跟Activity之间的通信
- fragment与activity之间通信原理以及例子
- Android中Activity和Fragment之间的通信
- Android EventLine框架制作过程 三 Activity和Fragment之间的相互通信
- fragment与activity之间的通信
- Activity与fragment之间的通信
- android中fragment与activity之间通信原理以及例子
- Fragment——Activity与Fragment之间进行通信
- android中fragment与activity之间通信
- Fragment生命周期,及和Activity之间如何通信。
- fragment与activity之间通信整理
- 详解Fragment跟Activity之间的通信 利用handler fragment和activity双向发送消息
- Fragment的生命周期&同一Activity下不同Fragment之间的通信
- fragment与activity之间通信原理以及例子