= (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment); 一个比较好的做法是在fragment...里面定义一个回调接口,然后要求宿主activity实现它。...当activity通过这个接口接收到一个回调,它可以同布局中的其他fragment分享这个信息。...这个情况下,在MenuFragment中声明一个接口MyMenuListener(第一步) 为了确保宿主activity实现这个接口,MenuFragment的onAttach()方法(这个方法在fragment...被加入到activity中时由系统调用)中通过将传入的activity强制类型转换,实例化一个MyMenuListener对象:(第二步) 之后MainActivity实现这个MyMenuListener
传值到Activity Chapter One fragment 概念 fragment到底是什么东西呢?...英文为碎片,片段,通俗讲就是Activity界面的一个片段,组成部分。一个Activity界面可以有多个fragment 。fragment只能依赖于Activity而存在,像寄生虫一样。...Chapter Two fragment的生命周期 既然fragment依赖于Activity存在,那么fragment的生命周期与Activity息息相关,也就不难理解了。...与activity生命周期关系流程图如下: 在启动一个activity加载fragment的过程中,方法执行如下: onCreate(Activity)--->onCreate(fragment)---...创建多个fragment后,需将fragment与Activity联系起来,fragment 之间也需要切换, activity_main.xml文件 <RelativeLayout xmlns:android
fragment不能单独存在,必须依附在Activity上,所以在Activity跳转时,实际是跳到fragment的宿主上 代码: Activity点击跳转里 Intent intent=new Intent...(ListDetailsActivity.this,MainActivity.class); intent.putExtra("id",2); startActivity(intent); fragment...宿主Activity int id = getIntent().getIntExtra("id", 0);//获取intent值 if (id == 2) { //判断intent值...getSupportFragmentManager() .beginTransaction() .replace(R.id.container,new MyFragent())//设置显示fragment
Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似。 ...数据存储和恢复 和Activity类似,可以用Bundle类对象保存fragment的状态,当activity的进程被kill之后,需要重建activity时,可以用于恢复fragment的状态。...3.fragment和Activity之间的通信:(也就是控件的相互操控) fragment控制fragment:得到一个Activity,然后通过这个Activity的getFragmentManager...activity和fragment已经进行关联的情况下否则返回null。 ...创建事件回调 些情况下,可能需要fragment和activity共享事件,一个比较好的做法是在fragment里面定义一个回调接口,然后要求宿主activity实现它。
使用Fragment的时候可能需要在两个Fragment之间进行参数的传递,开始想着可以使用SharedPreferences进行处理,想想这些简单的参数没有必要使用这么麻烦的方式去实现,翻了一下Fragment...的API,找到一个方法就能实现像Activity一样便捷的实现参数传递 程序中的一段代码 ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag...,参数的形式只要bundle能传递都可以实现 这个原理好像是和Activity是一样的。...我这里传递的是一个关键字,从一个搜索Fragment页面跳转到两外一个结果查询的Fragment页面,在跳转的时候也可以加上一些动画的跳转效果 ft.setCustomAnimations(R.anim.slide_in_right..., 最后再fragment中 shipProductId=getArguments().getString("productId"); 即可得到
应用场景 如果你需要在fragment中处理一些事情,事情的处理结果或者你需要告 诉activity马上要做什么事,这时候就需要和activity进行通讯。...包括很多fragment在viewpager中的情况,而且可以保证activity能即时进行响应。相比发送广播,性能更好,代码更少。...实战 假设有这样一个需求:在一个activity中有一个viewpager,viewpager里面有几个fragment,其中的一个fragment里面有一个任务,这个任务做完之后需要跳转到其他的fragment...分析 既然需要跳转的到的fragment在viewpager里,那么只要控制viewpager跳转就可以了,而viewpager在activity里,我们是不是可以告诉activity一声让它处理一下就可以了呢...4.根据业务进行回调 这里我们只需要在需要Activity切换fragment的地方调用 if (listener !
与Activity 当在使用activity嵌套fragment,fragment再嵌套子fragment时,相当于有两层fragment,假设最外层为第一层,其中一个Fragment为ParentfragmentA...中的控件点击切换到同一层的另一个子fragment 如图,在第二层fragment中,child1fragment中有两个控件viewI和viewII,点击viewI可以切换到同一层的fragment...activity....对于viewII的点击事件,实现从Child1切换到ParentB //获取到 所依附的activity对象 InitEmptyKeyActivity...activity = (InitEmptyKeyActivity) getActivity(); activity.mViewPager.setCurrentItem(
主要就是activity和recycview,recycview和adapter; 主要就是fragment和recycview,recycview和adapter; 1.在build.gradle添加...getName() { return name; } public int getImageId() { return imageId; } } 5.在Activity...Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main...中定义使用 public class CollectFragment extends Fragment { private View view;//定义view用来设置fragment的layout...= (TextView) itemView.findViewById(R.id.item_goods_price); //点击事件放在adapter中使用,也可以写个接口在activity
最近做的一个项目,突然出现了这个问题, Activity 中有四个fragment,分别是 first, two, three, four,默认显示的是fragment a。...在开发过程中,first中 跳转到另一个Activity ,将这个外部Activity命名为B吧......中,在这里跳转到three,这里重写了onResume()方法 相信有这个错误的童鞋一定都找过很多案例,这里就不多做解释了,直接上代码 //activity跳转到fragment @Override protected...void onResume() { int id = getIntent().getIntExtra("id", 0); if (id == 2) { Fragment..., fragmen); transaction.commit(); mViewPager.setCurrentItem(2);// //帮助跳转到指定子fragment
当然TabHost也可以用来做底部菜单,但是Fragment来做,动画效果这些可以做得更炫。 Fragment和Activity之间是可以相互进行参数传送这些。...但是Fragment不可以直接就将数据传送到另外一个Fragment,而是借助Activity,先传到Activity,如何再通过Activity传到Fragment。 ...所以实现Fragment和Activity之间的数据传送是很关键的。 (1)先创建一个Interface接口IBnCallListener,用来实现两者之间的数据传送。...package com.util; /** * 传送Fragment和FragmentActivity之间的控件交互信息 * */ public interface IBtnCallListener...)方法和transfermsg()方法,然后transfermsg()方法就根据自己项目需要去调用了 package com.activity; /** * *主界面类 *fragment是
2019.5.21,在fzsd 上代码:标红的是接口传值和回调 activity: public class Result_look_TabLayoutActivity extends AppCompatActivity...Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result_look_tablayout...ThreeFragment.newInstance(listTitles.get(2)); oneFragment.setOnReeshAmount(new OneFragment.OnReeshAmount() { //activity...mViewPager.setAdapter(mAdapter); mTabLayout.setupWithViewPager(mViewPager);//将TabLayout和ViewPager...extends Fragment { private View view;//定义view用来设置fragment的layout public RecyclerView mCollectRecyclerView
1概念 1 为什么 因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常。...2 参考链接 Activity和Fragment传递数据的两种方式 【Fragment精深系列4】Fragment与Activity之间的数据交互 2 Activity把值传递给Fragment 2.1...((MainActivity) activity).getTitles();//通过强转成宿主activity,就可以获取到传递过来的数据 } 2.3 第三种方式,是扩展一下创建Fragment和传递数值...Activity 3.1 步骤 (1)在fragment中定义一个内部回调接口,再让包含该fragment的activity实现该回调接口,这样fragment即可调用该回调方法将数据传给activity...4.1 通过共同的Activity传递(主要方法) 在Activity里面添加一个字段、来临时保存要一些值。在Activity中定义一个字段、然后添加set和get方法。
上一篇解决了【Android解决Fragment跳转到Fragment页面问题,相同或不同宿主Activity解决方法】 背景:我的问题是在主页面出现的,硬是要从跳过好几层的Activity中点击一下就要跳到主页面中的任意一个...处理:Activity跳到fragment 其实简单的说Activity跳fragment很简单,在activity中写上这段代码,在跳转到该activity的时候用根据传的值判断加载哪个fragment..., mDownloadFragment); ftransaction.commit(); } 但是如果你是通过该activity中的fragment跳转到其他activity之后,想在其他activity...中再跳回来到指定的fragment而不重新加载activity,就得通过下面的方法了。...这儿点击事件中设置一个结果码finish掉自己返回: setResult(2); //结果码和请求码互不影响,设值任意 finish(); 然后,在BActivity中,重写一个方法判断结果码和请求码
Fragment(碎片)是必须嵌入在 Activity(活动) 中使用的。...Fragment的生命周期随着Activity的生命周期的变化而变化 一、首先让我们看下Activity和Fragment的生命周期对比 ?...,fragment ); 20 action.commit(); 21 22 System.out.println("现在执行Activity的 onCreate...); 17 return view; 18 } 19 20 @Override 21 public void onAttach(Activity activity...关闭activity 结束之前的生命 ?
在要跳转的activity中的按钮写: //一、先跳转到主MyActivityFragment,通过传递参数让他接受 case R.id.grxxbut: Intent show=new Intent(...GrXxActivity.this,MyActivityFragment.class); show.putExtra(“grxx”,1); startActivity(show); finish(); break; //二、这个是fragment...System.out.println(“aaa”+id); if(id==1){ transaction.replace(R.id.zlayout, showFragment); //这里是指定跳转到指定的fragment
1、Activity的实现 对于Activity的SwipeBack实现,网上有大量分析,这里我简要介绍下原理,如下图: 我们只要保证SwipeBackLayout、DecorView和Window的背景是透明的...,只有这两个方法返回大于0的值才能正常的捕获; 并且你需要考虑当前拖拽的页面下是有2个SwipeBackLayout:当前Fragment的和Activity的,最后代码如下: @Override public...2、动画 我们需要在拖拽完成时,将Fragment/Activity移出屏幕,紧接着关闭,最重要的是要保证当前Fragment/Actiivty关闭和上一个Fragment/Activity进入时是无动画的...原因在于: SwipeBackFragment库是一个仅实现Fragment&Activity拖拽返回的基础库,适合轻度使用Fragment的小伙伴(项目属于多Activity+多Fragment,Fragment...Fragmentation主要是在项目结构为 单Activity+多Fragment,或者重度使用Fragment的多Activity+多Fragment结构时的一个Fragment帮助库,Fragment-SwipeBack
我的需求是这样的,我app进去主界面就是一个fragment 由startactivity来管理,在程序标题栏有个搜索控件 点击搜索控件,程序需要跳转到另外一个搜索界面去,其实就是一个动态搜素效果,...输入一个字的时候,下面的东西能够动态变化,然后你就可以点击listView显示的某行值 然后界面再次回到 fragment里面,或者是跳转到其他的fragment里面, 当时出了一个错误,就是我直接在searchActivity...里面执行了fragment跳转,发现这种是错误的,根本无法跳转, 必须先把结果返回到StartActivity里面,由它分发事务才可以的 所以这里就用了startActivityForResult();...,而值可以从 searchActivity里面返回,只不过我这里没有返回,因为我只需要知道一个值,而那个值我是放在Constants里面的,用的时候从缓存里面取的 所以这里面不涉及到从activity...向fragment传值的问题,
问题描述 相信学过安卓开发的同学都知道Activity与fragment这两个控件,这两个是我们在安卓开发中经常遇到的问题,有些人不能够分清这两个的相同点以及他们的区别,今天我们就来了解一下Activity...与fragment的相同点以及他们的区别。...相同点 Activity与fragme都是安卓开发的重要组件,他们都是安卓开发中的页面布局的重要组成部分,很多人在学习前端开发之后学习起Activity与fragment是非常简单的,他和我们前端的学习非常的相似...fragment 不同点 在安卓开发中Activity与fragment也有许许多多的不同,首先我们来介绍一下Activity这个控件,我们首先来看一下Activity代表的是整个页面,就像我们在APP...Activity与fragment的生命周期也是不同的,下面我们通过两个图片来简单的了解一下Activity与fragment的生命周期。 ? ?
在Xamarin里子页面为Fragment,翻译过来是片段的意思。 Fragment 下面我们来学习Fragment的用法。...首先创建一个类MenuFragment继承Fragment;然后重写他的OnCreateView方法,代码如下: [Activity(Label = "KibaApp")] public class MenuFragment...引用Fragment 在主页面的axml视图中,我们定义一个fragment,然后编写代码如下: fragment android:layout_height="fill_parent"...Activity之间传值 Android的页面之间传值是比较特别,它是使用Intent的PutExtra方法来传值的。 而PutExtra方法是一个被重载的方法,如下图所示: ?...------------------------------------------------------------------------------------------------- 到此Activity
领取专属 10元无门槛券
手把手带您无忧上云