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();
}
});
}
}
Android -------- 从一个Fragment跳转到另一个Fragment的更多相关文章
- [转]Fragment跳转至Activity或者Fragment
1.Fragment跳转至Activity 从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的acti ...
- Android从一个Fragment跳转到另一个Fragment后原来的组件不消失
问题描述 Activity上放置了一个Fragment,Fragment上有按钮,点了按钮后,应该跳转到另一个Fragment, but 原来的Fragment的按钮不会消失,新的Fragment不是 ...
- 怎么通过activity里面的一个按钮跳转到另一个fragment(android FragmentTransaction.replace的用法介绍)
即:android FragmentTransaction.replace的用法介绍 Fragment的生命周期和它的宿主Activity密切相关,几乎和宿主Activity的生命周期一致,他们之间最 ...
- android 如何从activity跳转到另一个activity下指定的fragment
思路: 跳转到目标fragment所在的activity,并传递一个flag,来确定要到哪个fragment,根据该flag判断后,跳转到指定的fragment即可. 代码: 当前界面: intent ...
- 如何绑定android点击事件--跳转到另一个页面并实现关闭功能?
一.点击按钮跳转到另一个页面. eg:实现从一个页面点击跳转到另一个页面 1.首先在一个布局文件(.XML)中绘画了一个跳转按钮(id为btn1): <Button androi ...
- 【原创】Android 从一个Activity跳转到另外一个Activity
Android四大组件activity使用,实现两个activity之间的跳转 基本流程:创建两个activity-将其中一个activity中组件作为事件源-通过组件事件的处理借助intent对象实 ...
- 从一个Fragment跳转到另一个Fragment
我们知道Activity之间的跳转可以使用 startActivity(intent).但Fragment之间的跳转却不能使用该方法,那该怎么办呢? 直接上代码: 核心代码 @Override//核心 ...
- 由一个activity跳转到另一个activity
定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...
- struts2 从一个action跳转到另一个action的struts.xml文件的配置
解释: 想要用<result>跳转到另一个action,原来的配置代码是: <action name="insertDept" class="strut ...
随机推荐
- crtmpserver组网方案
A Powerful Live Streaming Setup 搭建强大的直播系统 Recently we had a project requiring live streaming setup, ...
- Web前端浏览器兼容初探
浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台web开发同学往往容易选择忽略,而形成两个极端: 1 我最开始都是使用IE6,IE6上没问题,其它浏览器坑爹(多出现与前端后端 ...
- Android向SDCard中上传文件时报错:Failed to push items
向sdcard中添加文件为什么总是提示Failed to push the item(s) Failed to push XXXXX.txt on emulator- : Read-only ...
- 《Effective C++》 阅读小结 (笔记)
A person who is virtuous is also courteous. "有德者必知礼" 书本介绍:<Effective C++:改善程序与设计的55个具体做 ...
- $this->success('注册成功!');
使用在控制器中,不是使用再模板中的
- Linux下部署Symfony2对app/cache和app/logs目录的权限设置
在linux下部署完Symfony2,可能在访问的时候会报app/logs或者app/cache目录没有写权限的错误.在linux下,如果我们在命令行登陆的用户和web应用服务器(apache.ngi ...
- NMAP扫描UDP123NTP端口详解
我用的nmap版本:Zenmap 6.25 例如命令: nmap -sU -pU:123 -Pn -n --script=ntp-monlist IP 如果要批量进行,可以把IP存放在ip.txt可以 ...
- [LeetCode 115] - 不同子序列(Distinct Subsequences)
问题 给出字符串S和T,计算S中为T的不同的子序列的个数. 一个字符串的子序列是一个由该原始字符串通过删除一些字母(也可以不删)但是不改变剩下字母的相对顺序产生的一个新字符串.如,ACE是ABCDE的 ...
- 理解ATL中的一些汇编代码(通过Thunk技术来调用类成员函数)
我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以 ...
- Android取得电池的电量
首先需要用到的是一个类继承BrocastReceiver 2 代码如下: public class Battery_Info extends BroadcastReceiver { @Override ...