`

Fragment之间的跳转

阅读更多

android中在fragment A里面点击button跳转到fragment B怎么实现?

 

方法一:直接getActivity,使用activity的fragmenttransation的replace方法替换

假设

 

class OneFragment extends Fragment{
    private Button btn;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_one, null);
        btn = (Button)view.findViewById(R.id.button);
        btn.setOnClickListener(new OnClickListener() {
             
            @Override
            public void onClick(View v) {
                FragmentManager fm = getActivity().getFragmentManager();
                fm.beginTransaction()
                //替换为TwoFragment
                .replace(R.layout.fragment_container,new TwoFragment())
                .commit();
            }
        });
        return super.onCreateView(inflater, container, savedInstanceState);
    }
}

 

但是这样做会使OneFragment和原activity的耦合度提高,fragment设计出来就是有重用的目的,所以不好,使用方法二

 

方法2:定义回调函数,当button按下调用回调

class OneFragment extends Fragment{
    private Button btn;
    private OnButtonClick onButtonClick;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_one, null);
        btn = (Button)view.findViewById(R.id.button);
        btn.setOnClickListener(new OnClickListener() {
             
            @Override
            public void onClick(View v) {
                if(onButtonClick!=null){
                    onButtonClick.onClick(btn);
                }
            }
        });
        return super.onCreateView(inflater, container, savedInstanceState);
    }
    public OnButtonClick getOnButtonClick() {
        return onButtonClick;
    }
    public void setOnButtonClick(OnButtonClick onButtonClick) {
        this.onButtonClick = onButtonClick;
    }
    public interface OnButtonClick{
        public void onClick(View view);
    }
}

 

这样只要在acitivty中设置回调即可

 

public class MainActivity extends Activity {
 
    private OneFragment oneFragment = new OneFragment();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //。。。
        //。。。省略代码
        oneFragment.setOnButtonClick(new OnButtonClick() {
             
            @Override
            public void onClick(View view) {
                //切换到TwoFragment
                fm.beginTransaction()
                //替换为TwoFragment
                .replace(R.layout.fragment_container,new TwoFragment())
                .commit();
            }
        });
    }
}

 

分享到:
评论

相关推荐

    Activity之间以及fragment之间跳转 共享元素动画实现

    在Android应用开发中,UI交互的流畅性和用户体验密切相关,而Activity和Fragment之间的跳转以及共享元素动画正是提升这种体验的重要手段。本篇文章将详细讲解如何在Android中实现Activity与Fragment之间的平滑过渡...

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

    Android 两个Fragment之间的跳转和数据的传递实例详解 Android 两个Fragment之间的跳转和数据的传递实例详解是 Android 应用程序开发中的一项重要技术,该技术可以实现在不同的Fragment之间的跳转和数据的传递。...

    通过接口的方式实现fragment之间的跳转操作

    本文将详细介绍如何通过接口的方式实现Fragment之间的跳转操作,以增强代码的灵活性和可维护性。 首先,我们需要理解接口在编程中的作用。接口是一种定义行为的规范,它定义了一组方法签名,但不包含具体实现。在...

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

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

    Android Activity与Fragment之间的跳转实例详解

    以下是对Activity与Fragment之间跳转的详细解释: 一、Activity之间的跳转 Activity之间的跳转通常通过`Intent`对象来实现。在给定的示例中,`MainActivity`有一个按钮点击事件`jump(View view)`,当用户点击按钮...

    Fragment的四种跳转方式:Fragment_Activity_skiptest.

    Fragment的四种跳转方式: 1、从同一个Activiy的一个Fragment跳转到另外一个Fragment 2、从一个Activity的Fragment跳转到...fragment之间的跳转方式。 https://blog.csdn.net/m0_61465701/article/details/126145181

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

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

    fragment activity与fragment相互传值 fragment与fragment跳转

    本示例主要关注两个核心知识点:Fragment与Activity之间的数据传递,以及Fragment之间的跳转。 首先,我们来探讨Fragment与Activity之间的数据传递。在Android中,有多种方式实现两者间的数据交换: 1. **通过...

    fragment间的跳转例子

    下面将详细讲解`Fragment`之间的跳转方法及其相关知识点。 1. **添加Fragment** 在Activity中添加Fragment,通常通过`FragmentManager`和`FragmentTransaction`来完成。首先,你需要创建一个`Fragment`实例,然后...

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

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

    fragment互相切换 简单demo

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

    Fragment之间通过Activity通信

    在Android应用开发中,Fragment是UI组件的一...总结来说,Fragment之间的通信主要通过Activity、Bundle、接口回调或者现代的组件间通信库来实现。理解并熟练掌握这些方法对于构建高效、可维护的Android应用至关重要。

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

    提供的"FragmentDemoTest"可能包含了一个简单的Fragment示例,它展示了如何创建和添加Fragment,以及如何在Fragment之间进行跳转。你可以通过运行这个示例来加深对Fragment的理解,学习如何在实际项目中应用这些概念...

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

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

    navigation-keep-fragment-sample,.zip

    在Android Navigation Component中,Fragment是应用程序中可重用的UI部分,而Navigation Component则是一种管理这些Fragment之间跳转的工具。它简化了导航逻辑,允许开发者通过图形化界面或XML来定义应用的导航结构...

    一个Activity中多个Fragment的切换

    当需要在这些Fragment之间进行切换时,一种常见的做法是通过接口通信来实现。以下是一个详细步骤,介绍如何在Fragment之间进行切换: 1. **定义接口**: 在需要发起切换操作的Fragment(例如Fragment1)中,定义一...

    activity和fragment的生命周期以及intent跳转

    - **与Activity之间的通信**:Fragment可以通过接口的方式与包含它的Activity进行通信。 - **ViewPager + Fragment + ListView**:这是一种常见的模式,用于在一个滑动的容器中展示多个Fragment。 #### 意图(Intent...

    fragment切换动画

    共享元素动画可以让两个Fragment之间特定视图的动画效果平滑过渡,增加用户体验的连贯性。 总之,"fragment切换动画"是一个提升Android应用用户体验的重要技术。通过`FragmentTransactionExtended`这样的库,开发者...

    从一个activity跳到fragment,再从fragment跳到activity

    标题和描述中提到的情况涉及到Activity与Fragment之间的交互,这是Android UI设计中常见的场景。本文将深入探讨如何实现从一个Activity跳转到Fragment,以及如何从Fragment返回到另一个Activity。 首先,我们来看...

Global site tag (gtag.js) - Google Analytics