Android Activity加载Fragment的一般简易方法
2015-11-20 08:51
585 查看
Android Activity加载Fragment的一般简易方法
首先写一个布局,布局里面以FrameLayout布局为佳,
然后在上层java代码中创建Fragment进而replace上面的这个FrameLayout:
package com.example.demo;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = this.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment, new MyFragment());
// addToBackStack添加到回退栈,addToBackStack与ft.add(R.id.fragment, new
// MyFragment())效果相当
// ft.addToBackStack("test");
ft.commit();
}
private static class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(android.R.layout.simple_list_item_1,
null);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setText("hello,world!");
}
}
}
如果使用FragmentTransaction的add而不是replace,那么与replcae情况下再加入addToBackStack结果相当。
首先写一个布局,布局里面以FrameLayout布局为佳,
<FrameLayout 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:id="@+id/fragment" tools:context="com.example.demo.MainActivity" > </FrameLayout>
然后在上层java代码中创建Fragment进而replace上面的这个FrameLayout:
package com.example.demo;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = this.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment, new MyFragment());
// addToBackStack添加到回退栈,addToBackStack与ft.add(R.id.fragment, new
// MyFragment())效果相当
// ft.addToBackStack("test");
ft.commit();
}
private static class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(android.R.layout.simple_list_item_1,
null);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setText("hello,world!");
}
}
}
如果使用FragmentTransaction的add而不是replace,那么与replcae情况下再加入addToBackStack结果相当。
相关文章推荐
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
- Android progressBar 自定义圆形旋转图片
- Android应用程序安装过程源代码分析
- android 屏幕分辨率
- Android JNI调用函数命名原则规范
- 【Android】 新建项目 "错误: 程序包R不存在" 的解决方法
- 怎样使android的view动画循环弹动
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- Android-AsyncTask初体验
- 使用AndFix进行Hot fix
- Android Layout的属性
- Android项目使用support v7时遇到的各种问题
- 【转】Android通过Wifi来调试你的应用
- android 回调接口学习(自定义Dialog 获取数据数据回调)
- Android中的文件操作
- Android JNI开发之NDK环境的搭建
- Android 开发之JNI学习笔记
- Android JNI学习之Concepts
- ExpandableListView(可展开的列表组件)的说明以及其用法
- Beautyacticle 选图自定义圆形剪裁