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

private void changeToAnotherFragment(){
//如果是用的v4的包,则用getActivity().getSuppoutFragmentManager();
FragmentManager fm = getActivity().getFragmentManager();
//注意v4包的配套使用
Fragment fragment = new 目标fragment();
fm.beginTransaction().replace(容器控件id,fragment).commit();
}

二、定义回调函数(推荐)

  • 实现步骤

定义回调,并利用回调结果实现功能

    1、定义接口,并声明其包含的方法,
2、定义接口成员变量,
3、定义接口成员变量的get和set方法,主要是set方法,给成员变量赋值,
4、调用,判断如果成员变量不为空(null),则调用接口中的方法。

实现回调

    1、实例化包含回调接口的类,即定义类对象
2、对象调用set方法,将接口回传
3、实现接口中的方法,注意:该实现只在此处起作用。

三、举例

  • 定义包含有接口的类

      class OneFragment extends Fragment{
    private Button btn;
    private OnButtonClick onButtonClick;//2、定义接口成员变量
    @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) {
    //4、如果接口成员变量不为空null,则调用接口变量的方法。
    if(onButtonClick!=null){
    onButtonClick.onClick(btn);
    }
    }
    });
    return super.onCreateView(inflater, container, savedInstanceState);
    }
    //定义接口变量的get方法
    public OnButtonClick getOnButtonClick() {
    return onButtonClick;
    }
    //定义接口变量的set方法
    public void setOnButtonClick(OnButtonClick onButtonClick) {
    this.onButtonClick = onButtonClick;
    }
    //1、定义接口
    public interface OnButtonClick{
    public void onClick(View view);
    }
    }
  • 这样只要在acitivty中设置回调即可

      public class MainActivity extends Activity {
    //1、实例化类对象
    private OneFragment oneFragment = new OneFragment();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //。。。
    //。。。省略代码
    //2、调用对象的set方法,回传接口对象
    oneFragment.setOnButtonClick(new OnButtonClick() {
    //3、实现接口对象的方法,
    @Override
    public void onClick(View view) {
    //切换到TwoFragment
    fm.beginTransaction()
    //替换为TwoFragment
    .replace(R.layout.fragment_container,new TwoFragment())
    .commit();
    }
    });
    }
    }

Android -------- 从一个Fragment跳转到另一个Fragment的更多相关文章

  1. [转]Fragment跳转至Activity或者Fragment

    1.Fragment跳转至Activity 从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的acti ...

  2. Android从一个Fragment跳转到另一个Fragment后原来的组件不消失

    问题描述 Activity上放置了一个Fragment,Fragment上有按钮,点了按钮后,应该跳转到另一个Fragment, but 原来的Fragment的按钮不会消失,新的Fragment不是 ...

  3. 怎么通过activity里面的一个按钮跳转到另一个fragment(android FragmentTransaction.replace的用法介绍)

    即:android FragmentTransaction.replace的用法介绍 Fragment的生命周期和它的宿主Activity密切相关,几乎和宿主Activity的生命周期一致,他们之间最 ...

  4. android 如何从activity跳转到另一个activity下指定的fragment

    思路: 跳转到目标fragment所在的activity,并传递一个flag,来确定要到哪个fragment,根据该flag判断后,跳转到指定的fragment即可. 代码: 当前界面: intent ...

  5. 如何绑定android点击事件--跳转到另一个页面并实现关闭功能?

    一.点击按钮跳转到另一个页面. eg:实现从一个页面点击跳转到另一个页面 1.首先在一个布局文件(.XML)中绘画了一个跳转按钮(id为btn1): <Button         androi ...

  6. 【原创】Android 从一个Activity跳转到另外一个Activity

    Android四大组件activity使用,实现两个activity之间的跳转 基本流程:创建两个activity-将其中一个activity中组件作为事件源-通过组件事件的处理借助intent对象实 ...

  7. 从一个Fragment跳转到另一个Fragment

    我们知道Activity之间的跳转可以使用 startActivity(intent).但Fragment之间的跳转却不能使用该方法,那该怎么办呢? 直接上代码: 核心代码 @Override//核心 ...

  8. 由一个activity跳转到另一个activity

    定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...

  9. struts2 从一个action跳转到另一个action的struts.xml文件的配置

    解释: 想要用<result>跳转到另一个action,原来的配置代码是: <action name="insertDept" class="strut ...

随机推荐

  1. Delphi 串口打印机打印

    一.硬件准备 打印机: 打印机必须具有串口,没有标配串口的打印机,必须购买串口卡,串口卡的型号请参考随机<操作手册>. 计算机: 计算机必须具有串口,计算机通常具有两个串口:COM1和CO ...

  2. PHPCMSV9 更改后台地址

    修改PHPCMS v9默认后台登录地址 1.修改admin.php文件名,并修改跳转地址写上完整路径2.修改 /phpcms/modules/admin/classes/index.php,把 pub ...

  3. 【行为型】Chain of responsibility模式

    职责链模式将对象的请求处理组成链式结构,并将请求按链式结构逐个传递下去,直接被其中的某个处理者处理为止.由此可知,职责链模式的适用场合是对指定请求,可以有多个请求处理者(或称为请求响应者),但用户并不 ...

  4. Java内部类和外部类的通信探索

    1.内部类访问外部类的成员和方法 在内部类中,可以无障碍地访问外部类的所有成员和方法. 在下面的实验代码中,可以看到,内部类sl可以访问外部类的私有成员:sz 和 cur. 同时可以访问私有方法:pr ...

  5. jquery升级到新版本报错[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法(转)

    最近把一个项目的jQuery升级到最新版,发现有些页面报错Cannot read property 'msie' of undefined.上jQuery网站上搜了一下,原因是$.browser这个a ...

  6. 一句话输出网站404页面,REFER及相关排序

    cat www.log|awk '$9~/404/ {print $7"," $11}'|sort|uniq -c|sort -nr > ./www404.csv

  7. 玩转Google开源C++单元测试框架Google Test系列(转载)

    越来越多公司采用敏捷开发,单元和回归测试越来越重要,GTest作为最佳C++单元测试工具越来越多的被使用.转自 http://www.cnblogs.com/coderzh/archive/2009/ ...

  8. 黑马程序员_JavaIO流(四)

    File概述 File类 用来将文件或者文件夹封装成对象. 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递给流的构造函数. 了解File类中的常用方法. 字段:static St ...

  9. mac ssd开启trim

    输入以下指令: 为了安全,此步为备份驱动 (可能需要输入密码) sudo cp -r /System/Library/Extensions/IOAHCIFamily.kext/Contents/Plu ...

  10. Git分支学习总结

    思维导图:        总结:        Git分支:分为2类合计为5种分支.        第一类:主分支和开发分支.        第二类:特性分支,热补丁分支,版本分支.