`
毛驴追飞机
  • 浏览: 16690 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Fragment之间切换,”跳转“。

阅读更多

  Fragment是activity界面的一部分活着一种行为,它不能独立存在,必须嵌入到activity中,而且fragment的生命周期受所在activity的影响。所以fragment之间并不能直接像activity一样跳转。但是我们可以通过回调函数,用activity来控制切换fragment,实现好像fragment之间直接跳转的功能。

  做法是在需要跳转的fragment里面实现一个回调接口,然后要求主activity来实现它。当activity通过这个接口接到一个回调,来控制切换的界面。

 

/**
 * 
 *
 * @author hx
 * @version 2014-12-01
 *
 */
public class DemoFragment extends Fragment{
	
	DemoFragmentSelectedListener mCallback;
	
	//创建回调接口,实现碎片之间的切换
	public interface DemoFragmentSelectedListener {
        public void onArticleSelected(int position);
    }
    
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        // 确认容器activity已经实现接口
        // 回调接口。如果没有,抛出异常
        try {
            mCallback = (DemoFragmentSelectedListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnHeadlineSelectedListener");
        }
    }

//实现待跳转界面里面的事件,调用mCallback.onArticleSelected()传递对应的参数。
}

 在主activity中实现接口DemoFragmentSelectedListener:

/**
 * 
 *
 * @author hx
 * @version 2014-12-01
 *
 */
public class MainActivity extends Activity 
						implements DemoFragment.DemoFragmentSelectedListener{
	
	
    //实现searchFragment的接口,实现界面的跳转
	@Override
	public void onArticleSelected(int position) {
		// TODO Auto-generated method stub
		
		
		DemoFragment1 newFragment = new DemoFragment1();
        Bundle args = new Bundle();
        args.putInt("position", position);
        newFragment.setArguments(args);//传递参数
    
        android.app.FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.replace(R.id.content_frame, newFragment);//替换跳转
        transaction.addToBackStack(null);

        transaction.commit();
		
	}
    
}

 

在跳转到的DemoFragment1中接收参数。

/**
 * 
 *
 * @author hx
 * @version 2014-12-01
 *
 */
public class DemoFragment1 extends Fragment{
	
	public void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		//获取DemoFragment传递过来的参数。
		int position = (Integer) getArguments().get("position");
	}

}

 

 

 

 

分享到:
评论

相关推荐

    Android通过按钮实现Fragment之间的跳转,代码可以运行.zip

    本示例教程将详细讲解如何通过按钮实现Fragment之间的跳转,这在多视图交互中非常常见。我们将分析源码,了解其工作原理,并提供一个可运行的示例。 首先,我们需要在布局文件中为每个Fragment定义布局,并添加按钮...

    android+Fragment实现页面的局部跳转

    6. **通信和协调**:Fragment之间或Fragment与Activity之间的通信可以使用`onActivityResult()`、`setArguments()`和`getArguments()`、接口回调、EventBus或LiveData等方法。 通过以上步骤,你就可以在Android平板...

    fragment间的跳转例子

    `Fragment`间的跳转是Android开发中的常见操作,它允许用户在不同界面间流畅切换。下面将详细讲解`Fragment`之间的跳转方法及其相关知识点。 1. **添加Fragment** 在Activity中添加Fragment,通常通过`...

    fragment互相切换 简单demo

    通过定义一个导航图(nav_graph.xml),可以方便地在多个Fragment之间跳转,同时支持回退栈管理。 在"FragmentDemo"这个项目中,你可以找到上述步骤的具体实现。通过学习和运行这个Demo,你应该能更好地理解和掌握...

    fragment切换动画

    这就是“fragment切换动画”。 在Android中,我们可以自定义Fragment切换动画,实现进入和退出动画。这些动画可以通过FragmentTransaction的setCustomAnimation方法来设置。例如,可以设置一个淡入淡出的效果,使得...

    Android fragment切换动画.rar

    "Android fragment切换动画.rar"这个压缩包文件很显然是关于如何在Android中为Fragment切换添加动画效果的示例代码或教程。 Fragment的切换动画不仅能够提升应用的视觉吸引力,还能使用户操作更加流畅自然。Android...

    Fragment间的切换

    理解Fragment的生命周期是进行Fragment切换的基础。Fragment有自己的生命周期,包括onAttach(), onCreate(), onCreateView(), onActivityCreated(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), ...

    android fragment 页面切换简单demo

    7. **监听Fragment交互**:通过接口或者EventBus等通信方式,Activity可以监听Fragment之间的交互,实现更复杂的业务逻辑。 在"Fragment-test"这个压缩包中,可能包含了实现上述步骤的源代码和资源文件。通过学习和...

    Android 两个Fragment之间的跳转和数据的传递实例详解

    Android 两个Fragment之间的跳转和数据的传递实例详解  作为一个Android的菜鸟,前些天在做项目的时候用到了fragment,需求是从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样。在...

    Android 关于fragment切换重新加载的解决方法

    在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment 但是,这样会有一个问题 ,应该很多朋友都遇到过: 每次切换的时候,Fragment都会重新实例化,也就是运行OnCreatVIew()方法 那么如何让多个...

    Fragment实现切换界面

    Fragment实现切换界面 点击下方的每一个布局 实现跳转

    实现多个fragment之间的切换

    CorePage-master这个文件可能是某个开源框架的源码,该框架可能专注于简化Fragment的管理和切换,提供更高效的页面跳转机制。如果需要深入了解,可以下载并分析源码,学习其设计理念和实现方式。 总结来说,实现多...

    android的关于fragment,实现Activity之间的跳转

    本教程将深入讲解如何在Android项目中使用Fragment,并实现Activity之间的跳转。 一、Fragment基本概念 Fragment是Android 3.0(API级别11)引入的一个新特性,它是Activity的一个模块化部分,可以有自己的生命周期...

    Fragment实现页面切换

    本教程将详细介绍如何实现Fragment之间的页面切换。 首先,我们需要了解Fragment的基本概念。Fragment是一个可以在Activity中添加、移除或替换的部分用户界面。每个Fragment都有自己的生命周期,可以独立于Activity...

    NavController多个fragment控制(跳转)

    NavController简化了在多个Fragment之间切换的过程,同时也处理了回退栈的管理,使得开发者能够更专注于业务逻辑而不是导航细节。在这个主题中,我们将深入探讨NavController如何在多个Fragment间进行控制和跳转。 ...

    kotlin--利用TabLayout、ViewPager、Fragment实现滑动切换页面

    ViewPager是Android系统提供的一个视图容器,它可以承载多个页面(通常为Fragment)并实现平滑的滑动切换。用户可以左右滑动页面来查看不同内容,非常适合用来创建滑动导航菜单或展示多个相互关联的视图。 接下来,...

    详解Android activity与fragment之间的通信交互

    前言 纵观市场,大多数的APP都采用导航+fragment这种...MainActivity中成员方法test(),fragment中经test()方法判断后,方可执行下一步操作,如执行界面跳转; 例: public class MainActivity extends Activity{

    Android-通过Restful的uri完成Activity和Fragment的跳转

    在Android应用开发中,有效地管理Activity和Fragment之间的跳转对于构建用户友好的界面至关重要。"通过Restful的uri完成Activity和Fragment的跳转"是一种利用Restful风格的URL来实现组件间导航的方法。Restful URI...

    使用supportFragmentManager管理多个fragment切换

    至此,我们就完成了使用`supportFragmentManager`管理多个Fragment切换的基础配置。在实际开发中,你可能还需要考虑更复杂的情况,如Fragment的生命周期管理、数据传递、动画效果等。此外,`BirdTalkClient`可能是...

    Fragment的切换

    2. **使用NavHostFragment和导航图(Navigation Graph)**:Android Navigation Component提供了一种更高级的方式来管理Fragment之间的跳转。在XML导航图中定义了各个Fragment及其之间的关系,然后使用NavController...

Global site tag (gtag.js) - Google Analytics