android 63 Fragment
#Fragment 是3.0平板才引入进来的,3.0之后就加入了Fragment。原来是一个屏幕就是一个Activity,
>片段,碎片
1. 定义某一个片段的界面 继承Fragment类
public class BlueToothFragment extends Fragment {}
2. 重写Fragment里面的方法
显示Fragment的ui,把布局文件转化成view对象
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.blue_tooth_layout, null);
}
3. 获取Fragment管理器
fm = getFragmentManager();
4. 动态的修改界面
f1 = new BlueToothFragment();//先把要显示的f1new出来
FragmentTransaction ft = fm.beginTransaction();//开启事务
ft.replace(R.id.fl_container, f1);
ft.commit();//保证了 要么同时成功,要么同时失败
主页面:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 垂直排列
tools:context=".MainActivity" > <FrameLayout
android:id="@+id/fl_container"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="0dip" >
</FrameLayout> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#22000000"
android:orientation="horizontal" > <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setting01"
android:text="蓝牙设置" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setting02"
android:text="声音设置" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="setting03"
android:text="显示设置" />
</LinearLayout> </LinearLayout>
3个fragment:
蓝牙fragment: <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是蓝牙设置"
android:textAppearance="?android:attr/textAppearanceLarge" /> <RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" /> <ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ToggleButton" /> </LinearLayout> 显示fragment: <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是显示设置"
android:textAppearance="?android:attr/textAppearanceLarge" /> <CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox" /> <RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" /> </LinearLayout> 声音fragment: <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是声音设置"
android:textAppearance="?android:attr/textAppearanceLarge" /> <CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox" /> </LinearLayout>
主Activity:
package com.itheima.fragementdemo; import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View; public class MainActivity extends Activity {
private FragmentManager fm;//管理所有Fragment,更新页面的时候要么同时更新成功要么同时更新失败所以有事物,
BlueToothFragment f1;
ShowFragment f3;
SoundFragment f2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fm = getFragmentManager();
initFragment();
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f1);
ft.commit();//保证了 要么同时成功,要么同时失败
} private void initFragment() {
f1 = new BlueToothFragment();//Fragment是直接new出来的
f2 = new SoundFragment();
f3 = new ShowFragment();
} //蓝牙点击事件
public void setting01(View view) {
//事物开始的时候实例化ft,事物结束的时候提交事物,提交后事物就过期了,所以每次都要初始化ft
FragmentTransaction ft = fm.beginTransaction();//
ft.replace(R.id.fl_container, f1);
ft.commit();//保证了 要么同时成功,要么同时失败,保证了页面不花屏。
}
//声音点击事件
public void setting02(View view) {
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f2);
ft.commit();//保证了 要么同时成功,要么同时失败
}
//显示点击事件
public void setting03(View view) {
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f3);
ft.commit();//保证了 要么同时成功,要么同时失败
} }
3个fragment java代码
蓝牙: package com.itheima.fragementdemo; import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; public class BlueToothFragment extends Fragment {
//显示Fragment的ui的,不需要在清单文件配置任何内容
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.blue_tooth_layout, null);
}
} 声音 package com.itheima.fragementdemo; import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; public class SoundFragment extends Fragment {
//显示Fragment的ui的
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.sound_layout, null);
}
} 显示 package com.itheima.fragementdemo; import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; public class ShowFragment extends Fragment {
//显示Fragment的ui的
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.show_layout, null);
}
}
##Fragment的向下兼容,兼容低版本
>使用support-v4的jar包
>1. MainActivity extends FragmentActivity
>2. 所有的fragment的导包, android.support.v4.app.Fragment
>3. getSupportFragmentManager();
>4. 注意两个导包
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
package com.itheima.fragementdemo; import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View; public class MainActivity extends FragmentActivity {
private FragmentManager fm;
BlueToothFragment f1;
ShowFragment f3;
SoundFragment f2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//为了向下版本兼容采用v4包里面的FragmentManager
fm = getSupportFragmentManager();
initFragment();
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f1);
ft.commit();//保证了 要么同时成功,要么同时失败
} private void initFragment() {
f1 = new BlueToothFragment();
f2 = new SoundFragment();
f3 = new ShowFragment();
} //蓝牙
public void setting01(View view) {
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f1);
ft.commit();//保证了 要么同时成功,要么同时失败
}
//声音
public void setting02(View view) {
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f2);
ft.commit();//保证了 要么同时成功,要么同时失败
}
//显示
public void setting03(View view) {
//事务的概念
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fl_container, f3);
ft.commit();//保证了 要么同时成功,要么同时失败
} }
实现效果:

android 63 Fragment的更多相关文章
- [转]Android:Activity+Fragment及它们之间的数据交换(一)
2014-05-18 来源:Android:Activity+Fragment及它们之间的数据交换(一) 简介: 为什么要用Fragment?使用Fragment可以在一个Acti ...
- Android:Activity+Fragment及它们之间的数据交换.
Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...
- Android中Fragment和ViewPager那点事儿(仿微信APP)
在之前的博文<Android中使用ViewPager实现屏幕页面切换和引导页效果实现>和<Android中Fragment的两种创建方式>以及<Android中Fragm ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- Android中Fragment的两种创建方式
fragment是Activity中用户界面的一个行为或者是一部分.你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activity中再使用.你可以认 ...
- android之Fragment基础详解(一)
一.Fragment的设计哲学 Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计.平板电脑的屏幕比手机的大得多,有 ...
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
以下内容为原创,转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3364728.html 我前两天写过一篇博客<Android使用Fragment来 ...
- android之fragment的使用
android中的fragment与html中的div很类似,下图中通过左边的按键可以控制右边的显示内容.右边的内容就是一个fragment,通过点击按键来控制fragment的实现. 工程目录 需要 ...
- Android使用Fragment定义弹出数字键盘
fragment主布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmln ...
随机推荐
- 【产品体验】喵街&飞凡
最近O2O很火啊,我也来找几个O2O产品体验下~~~ 阿里今年5月30号上线了一款线下逛街App——喵街,号称消费者的逛街神器.阿里去年已经与银泰合作一年,探索互联网和传统实体零售合作之路,这次则免费 ...
- Uva 10294 Arif in Dhaka (First Love Part 2)
Description 现有一颗含\(N\)个珠子的项链,每个珠子有\(t\)种不同的染色.现求在旋转置换下有多少种本质不同的项链,在旋转和翻转置换下有多少种本质不同的项链.\(N < 51,t ...
- Android判断界面
仿造微信,第一次进入去引导界面,否则进启动界面. package edu.hpu.init; import edu.hpu.logic.R; import android.app.Activ ...
- sql server中创建链接服务器图解教程
转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...
- 不可忽视的 .NET 应用5大性能问题
[编者按]本文系国内 ITOM 管理平台 OneAPM 翻译自 Steven Haines 的文章.Steven Haines 是 Pisksel 技术架构师,目前在奥兰多迪士尼乐园工作.他是在线教育 ...
- 【HDU 5184】 Brackets (卡特兰数)
Brackets Problem Description We give the following inductive definition of a “regular brackets” sequ ...
- 李洪强漫谈iOS开发[C语言-031]-逻辑短路
- C/C++ ceil和floor函数
ceil 是“天花板" floor 是 “地板” 一个靠上取值,另一个靠下取值,如同天花板,地板. double ceil ( double x ); float ceil ( float ...
- 透过表象看本质!?之二——除了最小p乘,还有PCA
如图1所示,最小p乘法求得是,而真实值到拟合曲线的距离为.那么,对应的是什么样的数据分析呢? 图1 最小p乘法的使用的误差是.真实值到拟合曲线的距离为 假如存在拟合曲线,设直线方程为.真实值到该曲线的 ...
- java学习之线程
一.线程总述: 线程是java当中一个重要的内容,如果想说线程的话,那我们应该先来讲一下什么是进程. 进程:那么什么是进程呢,进程从字面上来理解就是,正在进行的程序.就比如说我们在windows当中打 ...