Android -------- 从一个Fragment跳转到另一个Fragment

##一、直接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();
                    }
                });
            }
        }

时间: 2024-11-05 17:19:47

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

[转]Fragment跳转至Activity或者Fragment

1.Fragment跳转至Activity 从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的activity,具体代码是这样的: Button button = view.findViewById(xxx); button.setOnClickListener(new View.OnClickListener(     onClick(View view) {         startActiv

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

一.点击按钮跳转到另一个页面. eg:实现从一个页面点击跳转到另一个页面 1.首先在一个布局文件(.XML)中绘画了一个跳转按钮(id为btn1): <Button         android:id="@+id/btn1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:tex

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

解释: 想要用<result>跳转到另一个action,原来的配置代码是: <action name="insertDept" class="struts.org.db.DeptAction" method="insertDept"> <result name="success" type="redirect-action">selectDept</result&g

基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码

比如 想跳到 mao.aspx 的页面 的div id="s" 的位置 那么 只用<a href="mao.aspx#s"> 就可实现跳转到指定位置 现在为了增加用户体验 跳转到页面后 平滑移动到该位置 怎么做呢 其实也很简单啦 那边传递过来一个 要跳转到哪个div的参数就行 先上一段 页面获取参数的 通用js 复制代码代码如下: //根据参数名获得该参数 pname等于想要的参数名 function getParam(pname) { var para

从一个App跳转到另一个App

在跳入App的info中配置Bundle identifier 在跳入App的info中配置URL Schemes 在另一个应用程序中按照上边的操作添加openURL并运行,就可以跳转了 调用openURL的方法 1 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"ceshi1://"]]) { 2 [[UIApplication sharedApplication] openURL:[N

从一个程序跳转到另一个应用程序

NSString *url = @"MyUrl://";    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 在另一个应用程序中按照上边的操作添加MyUrl并运行,就可以跳转了

iOS 在TabViewController中的一个ViewController跳转到另一个ViewController

步骤一: #import "AppDelegate.h" 步骤二: 在需要跳转的地方: AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; UITabBarController *tabViewController = (UITabBarController *) appDelegate.window.rootViewController; [tabViewCon

jeecg3.5中实现从一个页面跳转到另一个页面

实现以下效果 点"跳转到demo"后直接跳转到demo示例,并且带上查询条件,如下: 由于jeecg使用的是easyui,所以不能直接用类似于<a href="xxxx.do?xxx">这样的方式来跳转了,但还是有办法做到的,首先在\plug-in\accordion\js\left_shortcut_menu.js中增加以下代码: function goToTab(subtitle, url, icon) { // begin author:屈然博 2

从一个页面跳转到另一个页面传值问题

之前要解决这个问题,我借助struts2在后台转换了一下,但是这样未免有点麻烦,最近在重整项目,发现可以直接跳页面的时候把值传过去,示例如下: 在showTask.html页面中,点击其中一条数据的申请延期,需要把任务id传到applydepay.html页面,可以写成如下形式: /** * 申请延期 */ function showApplyDepay(data){ //打开申请延期页面 location.href="/pmsystem/pages/task/applyDepay.html#&