关于Android中Fragment静态和动态加载的方法
一.静态加载
1.首先创建一个layout布局fragment.xml,里面放要显示和操作的控件
2.创建一个layout布局main1.xml,用来实现页面的跳转(跳转为要实现静态加载的界面)
3.创建一个layout布局main2.xml,用来实现MyFragment类的转换为视图控件的定义
4.创建一个继承自Activity的Main1.java类,载入main1.xml的视图,并且实现点击后页面跳转为Main2.java类
5.创建一个继承自Activity的Main2.java类,载入main2.xml的视图,并且实现点击后fragment.xml中组件的text改变的效果,main2.java中可以直接引用fragment.xml中的控件
6.创建一个继承自ragment的MyFragment.java类,载入fragment.xml的视图,并且设置fragment.xml中组件的text初始的值
7.在AndroidMainFest文件里面定义Activity的Main1.java类和Activity的Main2.java类,并把Main1.java定义为初始的Activity界面
fragment.xml
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="改变" />
main1.xml
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="静态加载" />
main2.xml
<fragment
android:id="@+id/fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.example.fragmentjing.MyFragment"
/>
Main1.java
public class Main1 extends Activity {
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
btn1=(Button) findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Main1.this,Main2.class);
startActivity(intent);
}
});
}
Main2.java
public class Main2 extends Activity {
private TextView text;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
button=(Button) findViewById(R.id.button4);
text=(TextView) findViewById(R.id.textView4);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
text.setText("TextView的值改变了");
}
});
}
}
MyFragment.java
public class MyFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment,container,false);
TextView textView=(TextView)view.findViewById(R.id.textView4);
textView.setText("静态加载Fragment");
return view;
}
}
二.动态加载
1.首先创建一个layout布局fragment.xml,里面放要显示和操作的控件
2.创建一个layout布局main1.xml,用来实现页面的跳转(跳转为要实现静态加载的界面)
3.创建一个继承自Activity的Main1.java类,载入main1.xml的视图,并且实现点击后创建MyFragment2.java类的事件
4.创建一个继承自ragment的MyFragment2.java类,载入fragment.xml的视图,并且设置fragment.xml中组件的text初始的值
5.在AndroidMainFest文件里面定义Activity的Main1.java类和Activity的Main2.java类,并把Main1.java定义为初始的Activity界面
fragment.xml
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="改变" />
main1.xml
<LinearLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
Main1.java
public class Main1 extends Activity {
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
btn2=(Button) findViewById(R.id.button2);
btn2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MyFragment2 fragment2 = new MyFragment2();
FragmentManager fragmrentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmrentManager.beginTransaction();
beginTransaction.add(R.id.frame, fragment2);
beginTransaction.addToBackStack(null);
beginTransaction.commit();
}
});
}
}
MyFragment2.java
public class MyFragment2 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.fragment,container,false);
TextView textView=(TextView)view.findViewById(R.id.textView4);
textView.setText("动态加载Fragment");
return view;
}
}
关于Android中Fragment静态和动态加载的方法的更多相关文章
- Android中插件开发篇之----动态加载Activity(免安装运行程序)
一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析 ...
- Android在layout xml中使用ViewStub完成动态加载
Android在layout xml中使用ViewStub完成动态加载 一.Layout XML文件常见的两种模块加载方式 1.静态加载:被加载的模块和其它模块加载的时间一样. <include ...
- 携程Android App插件化和动态加载实践
携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...
- android中滑动SQLite数据库分页加载
今天用到了android中滑动SQlit数据库分页加载技术,写了个测试工程,将代码贴出来和大家交流一下: MainActivity package com.example.testscrollsqli ...
- 【MFC】picture控件 两种有细微差别的动态加载图片方法
摘自:http://www.jizhuomi.com/software/193.html VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) 分类标签: 编程入门 ...
- 动态加载css方法实现和深入解析
一.方法引用来源和应用 此动态加载css方法 loadCss,剥离自Sea.js,并做了进一步的优化(优化代码后续会进行分析). 因为公司项目需要用到懒加载来提高网站加载速度,所以将非首屏渲染必需 ...
- Android 插件化方案(动态加载)总结
1.作用 大多数Android开发人员开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,因而便有了插件化的概念,将一个 App 划分为多个插件(Apk ...
- Android应用安全之外部动态加载DEX文件风险
1. 外部动态加载DEX文件风险描述 Android 系统提供了一种类加载器DexClassLoader,其可以在运行时动态加载并解释执行包含在JAR或APK文件内的DEX文件.外部动态加载DEX文件 ...
- android sax解析xml 文件 动态加载标题
要解决一个问题 : 问题描述为 把标题动态的加载到 listView子布局中 我们首先通过 java程序写一个把标题写到xml文件的程序.这个程序会在以后讲解. 现在截图 已经写好的xm文件格式如下 ...
随机推荐
- Unix环境高级编程(一)文件I/O
Unix系统中大多数文件I/O只需用到五个函数:open.read.write.lseek.close.本章说介绍的I/O是不带缓冲的,即:每个read和write都调用内核中的一个系统调用.不是IS ...
- C++ 设计模式 —— 訪问者(Visitor)
訪问者设计模式的实现借助于两个继承体系, (1)elements:一个是被操作的类(基类及其子类) (2)visitors:一个定义了一系列操作的訪问者(基类及其子类) 訪问者模式是一种行为型设计模式 ...
- DOA——ESPRIT算法
相位phei = 2*pi*f*d*sind(theta),因此理论上来讲测向的算法都可以用来测频. ESPRIT:Estimating signal parameters viarotational ...
- UVA - 11609 Teams (排列组合数公式)
In a galaxy far far awaythere is an ancient game played among the planets. The specialty of the game ...
- [sh]shell案例
调用同目录下的ip.txt内容: 路径 [root@lanny ~]# pwd /root txt文件 [root@lanny ~]# cat ip.txt 10.1.1.1 10.1.1.2 10. ...
- 关于python调用zabbix api接口
因公司业务需要,引进了自动化运维,所用到的监控平台为zbbix3.2,最近正在学习python,计划使用python调用zabbix api接口去做些事情,如生成报表,我想最基本的是要取得zabbix ...
- android 开发 ------- 接口文档 规范
1 接口书写的格式: 1 用例图 2 流程图 3 详细的接口: 3.1请求的方式: 包含: server地址 le.gxjinan.com/open/user.php?ac=login ...
- ios笔记一 追加数据
//追加数据 NSString *homePat = NSHomeDirectory(); NSString *sourcePath = [homePath stringByAppedingPathC ...
- posix多线程--线程私有数据
1.当多个线程共享一个变量时,将该变量定义为静态或外部变量,使用互斥量确保共享变量的安全访问.如果每个线程都需要一个私有变量值,则该值成为线程的私有数据.程序创建一个键,每个线程独立地设定或得到自己的 ...
- code标签和pre标签的定义
前些日子一同事问了我一个关于code标签和pre标签的问题,嗯,是的,这两个标签凑到一块,便出现了问题.于是总结了一下.此文就重点谈一下code标签和pre标签喽,谈谈他们的定义,区别,应用以及这两个 ...