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 ...
随机推荐
- [转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
http://blog.csdn.net/stpeace/article/details/39534361 进程间的通信方式有很多种, 上次我们说了最傻瓜的“共享外存/文件”的方法. 那么, 在本文中 ...
- 利用Format函数格式化时间和日期
在做机房收费系统的时候,因为需要使用到日期进行查询,所以在数据表中没有使用自动添加日期的功能,而是采用了自定义的格式插入.但由于事先没有对时间转换的格式进行统一,导致后面查询时出现的问题不断. 插入时 ...
- 猜数字-js
var n = Math.round(Math.random()*10); //随机数 // alert(n); while(true){ var Onum = prompt('请输入1-10之间的数 ...
- iOS 摇一摇的实现-备用
- (void)viewDidLoad { [super viewDidLoad]; [[UIApplication sharedApplication] setApplicationSupports ...
- ubuntu14.04使用reaver跑pin码
今天刚说过没找到支持ubuntu14.04用reaver跑pin的旧版库文件这就有摸索到方法了... 另外安装系统ubuntu14.04以及一系列破解工具比如aircrack,minidwep等都不在 ...
- 网站(Tomcat)超线程宕机
网站大中午的又挂了····· 拷了日志如下: 2014-4-12 13:22:30 org.apache.tomcat.util.net.JIoEndpoint createWorkerThread信 ...
- Linux C判断日期格式是否合法
Title:Linux C判断日期格式是否合法 --2013-10-11 11:54 #include <string.h> // strlen() , strncpy() #includ ...
- SQLiteDatabase中的事务
beginTransaction():开始事务endTransaction():结束事务SQLiteDatabase还提供了如下方法来判断当前上下文是否处于事物环境中.inTransaction(): ...
- rsyslog 同步丢失问题
<pre name="code" class="html">[root@dr-mysql01 zjzc_log]# wc -l localhost_ ...
- Linux 安装字体
把XP下的字体C:\WINDOWS\FONTS\simsun.ttc(也就是宋体,大小为10M),把他重命名为 simsun.ttf 拷贝simsun.ttf 字体到 /usr/share/fonts ...