在Activity中定义一个字段、然后添加set和get方法、代码如下、mTitle就是要传递的参数、如果是传递对象、可以把mTitle换成一个对象即可
Fragment调用方法、需要注意的是在设值的时候要进行强转一下
参数传递方法二
可以使用bundle进行参数传递、这样在两个Fragment跳转的时候就可以带上参数了、同样也可以传递一个复杂的对象
在另外一个Fragment获取参数的方式只需要一个语句、key是自己定义的一个标识、参数的形式只要bundle能传递都可以实现
1、通过一些通信工具 如eventbus,这个是可以任意页面 组件通信
2、通过获取实例的方式
fragment通过getActivity()方法来获得Activity的实例,然后可以获取到此activity中的静态方法变量,也可以获取到它页面的控件
同理 在activity中通过ExampleFragment fragment = (ExampleFragment) getFragmentManager()findFragmentById(Ridexample_fragment);
获取到fragment实例
此种方式也用在同一个activity 中的两个fragment中通讯
首先在一个Fragment中可以得到与它相关联的Activity,然后再通过这个Activity去获取另外一个Fragment的实例,这样就实现了不同Fragment之间的通信。
3、通过回调的方式(这个需要学习回调怎么用):
一些情况下,可能需要fragment和activity共享事件,一个比较好的做法是在fragment里面定义一个回调接口,然后要求宿主activity实现这个接口。当activity通过这个接口接收到一个回调,它可以让同布局中的其他fragment分享这个信息。
4、通过Bundle传值
Activity在切换Fragment的时候,通过setArguments向Fragment传递参数,Fragment通过getArguments();获得从activity中传递过来的值
5、在applaction中定义需要的数据和方法,applcation是每个类 页面都可以访问到的
6、contentprovider 数据库 shareperence 等很多 大致常用的也就这些了
你的Activity里面注册过fragment吗?
像这样========》
private void InitViewPager() {
mPager = (ViewPager) findViewById(RidvPager);
fragmentsList = new ArrayList<Fragment>();
Fragment activityfragment = TestFragmentnewInstance("Hello Activity");
Fragment groupFragment = TestFragmentnewInstance("Hello Group");
Fragment friendsFragment=TestFragmentnewInstance("Hello Friends");
Fragment chatFragment=TestFragmentnewInstance("Hello Chat");
fragmentsListadd(activityfragment);
fragmentsListadd(groupFragment);
fragmentsListadd(friendsFragment);
fragmentsListadd(chatFragment);
mPagersetAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentsList));
mPagersetCurrentItem(0);
mPagersetOnPageChangeListener(new MyOnPageChangeListener());
}
以上就是关于android activity怎么给fragment传值全部的内容,包括:android activity怎么给fragment传值、Android activity与fragment之间通信的好的方法有哪些、如何在activity中获取fragment的控件,然后修改控件的内容,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)