一.静态加载

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静态和动态加载的方法的更多相关文章

  1. Android中插件开发篇之----动态加载Activity(免安装运行程序)

    一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析 ...

  2. Android在layout xml中使用ViewStub完成动态加载

    Android在layout xml中使用ViewStub完成动态加载 一.Layout XML文件常见的两种模块加载方式 1.静态加载:被加载的模块和其它模块加载的时间一样. <include ...

  3. 携程Android App插件化和动态加载实践

    携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...

  4. android中滑动SQLite数据库分页加载

    今天用到了android中滑动SQlit数据库分页加载技术,写了个测试工程,将代码贴出来和大家交流一下: MainActivity package com.example.testscrollsqli ...

  5. 【MFC】picture控件 两种有细微差别的动态加载图片方法

    摘自:http://www.jizhuomi.com/software/193.html VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) 分类标签: 编程入门 ...

  6. 动态加载css方法实现和深入解析

    一.方法引用来源和应用  此动态加载css方法 loadCss,剥离自Sea.js,并做了进一步的优化(优化代码后续会进行分析).  因为公司项目需要用到懒加载来提高网站加载速度,所以将非首屏渲染必需 ...

  7. Android 插件化方案(动态加载)总结

    1.作用 大多数Android开发人员开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,因而便有了插件化的概念,将一个 App 划分为多个插件(Apk ...

  8. Android应用安全之外部动态加载DEX文件风险

    1. 外部动态加载DEX文件风险描述 Android 系统提供了一种类加载器DexClassLoader,其可以在运行时动态加载并解释执行包含在JAR或APK文件内的DEX文件.外部动态加载DEX文件 ...

  9. android sax解析xml 文件 动态加载标题

    要解决一个问题 : 问题描述为 把标题动态的加载到 listView子布局中 我们首先通过 java程序写一个把标题写到xml文件的程序.这个程序会在以后讲解. 现在截图 已经写好的xm文件格式如下 ...

随机推荐

  1. c#的SortedList使用方法

    表示键/值对的集合,这些键和值按键排序并可按照键和索引访问. SortedList最合适对一列健/值对 进行排序,在排序时,是对键进行排序,SortedList 是 Hashtable 和 Array ...

  2. 从错误中学python(4)——最小公约数与辗转相除法

    题目 给你两个正整数a和b, 输出它们的最大公约数 辗转相除法 辗转相除法的步骤 def gcd(b,a): b,a=a,b%a if a==0: return b else: return gcd( ...

  3. STM32以太网ETH

    注:stm32F1系列中F103片上不含MAC控制器,所以不支持以太网,只有F105和F107才支持

  4. mysql开启skip-name-resolve 导致root@127.0.0.1(localhost)访问引发的ERROR 1045 (28000)错误解决方案

    为什么配置skip-name-resolve? 由于mysql -h${ip} 远程访问速度过慢, mysql -uroot -p123456 根据网友经验(https://www.cnblogs.c ...

  5. controller与requestmapping

    使用@controller定义controllersSpring mvc将特定url的请求分发到controller类来进行处理在spring 3.0中,通过@controller标注即可将class ...

  6. HDU 4968 Improving the GPA(dp)

    HDU 4968 Improving the GPA 题目链接 dp.最大最小分别dp一次,dp[i][j]表示第i个人,还有j分的情况,分数能够减掉60最为状态 代码: #include <c ...

  7. RhinoMock异常ExpectationViolationException以及解决

    ExpectationViolationException 异常的原因是没有按照mock的顺序调用方法. mock b mock a //expectation call a call b call ...

  8. 【Android】11.3 屏幕旋转和场景变换过程中GridView的呈现

    分类:C#.Android.VS2015: 创建日期:2016-02-21 一.简介 实际上,对于布局文件中的View来说,大多数情况下,Android都会自动保存这些状态,并不需要我们都去处理它.这 ...

  9. JMeter学习笔记(六)-负载与监听

    1. 场景设计 场景设计的原则:忠于用户实际操作,组合用户的各种操作到场景中来. JMeter场景主要通过线程组设置来完成的,对于复杂场景还需要与逻辑控制器配合完成. 2.场景设置 JMeter线程组 ...

  10. linux 打包为zip压缩包

    [root@nb linux学习]# zip -r dir.zip dir文件夹/ file文件 adding: dir文件夹/ (stored %) adding: file文件 (deflated ...