静态展示

注意 静态的开始进入界面的生命周期和动态的不同 详情:14 fragment注意点

  • 步骤一:创建一个类继承 Fragment

    • 代码类型一:

      package com.fmy.demo1;
      
      import android.app.Fragment;
      import android.graphics.Color;
      import android.os.Bundle;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.view.ViewGroup;
      import android.widget.TextView; public class MyFragment extends Fragment {
      private TextView tv; @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      tv = new TextView(getActivity());
      tv.setText("我是一个fragment");
      tv.setOnClickListener(new OnClickListener() { @Override
      public void onClick(View v) {
      tv.setTextColor(Color.rgb((int) (Math.random() * 256), (int) (Math.random() * 256),
      (int) (Math.random() * 256))); }
      });
      return tv;
      }
      }
      • 代码类型二(创建一个view填充):
      package com.fmy.demo2.fragment;
      
      import com.fmy.demo2.R;
      import com.fmy.demo2.UpDate; import android.annotation.TargetApi;
      import android.app.Activity;
      import android.app.Fragment;
      import android.content.Context;
      import android.os.Bundle;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.view.ViewGroup;
      import android.widget.Button;
      import android.widget.EditText;
      import android.widget.TextView;
      import android.widget.Toast; public class MyFragment extends Fragment { private Button bt;
      private EditText et;
      private UpDate activity2; @TargetApi(23)
      @Override
      public void onAttach(Context context) {
      super.onAttach(context);
      activity2 = (UpDate) context;
      //注意API23以下 getContext 空指针
      } @Override
      public void onAttach(Activity activity) {
      // TODO Auto-generated method stub
      super.onAttach(activity);
      activity2 = (UpDate) activity;
      } @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment01, container, false);
      Bundle bundle = getArguments();
      String string = bundle.getString("a");
      TextView tv = (TextView) view.findViewById(R.id.tv);
      et = (EditText) view.findViewById(R.id.et);
      bt = (Button) view.findViewById(R.id.bt);
      bt.setOnClickListener(new OnClickListener() { @Override
      public void onClick(View v) {
      activity2.sendMessage(et.getText().toString());
      }
      });
      tv.setText(string);
      return view;
      }
      }
      • xml文件
      <?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/tv"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="我是fragment" /> <EditText
      android:id="@+id/et"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:hint="请输入回传" /> <Button
      android:id="@+id/bt"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="回传" /> </LinearLayout>
    • 步骤二 在界面的xml中写入fragment标签

      • id一定要写
      • name指向继承fragment的类
      <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" > <fragment
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/f1"
      android:name="com.fmy.demo2.fragment.MyFragment"
      /> </LinearLayout>

动态创建fragment

  • 步骤一:创建一个类继承 Fragment:

    • 和静态一模一样的 故略
  • 步骤二:在界面的xml设置一容器标签

    • 如下

      <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" > <!--以下作为容器 -->
      <LinearLayout
      android:id="@+id/ll"
      android:layout_width="match_parent"
      android:layout_height="300dp"
      android:orientation="horizontal" >
      </LinearLayout> </LinearLayout>
  • 步骤三:在界面的逻辑代码处填写代码

    • 如下

          //获得fragment管理器
      FragmentManager manager = getFragmentManager();
      //开启事务
      FragmentTransaction tarTransaction = manager.beginTransaction();
      //创建一个fragment对象
      MyFragment fragment = new MyFragment();
      //创建一个bundle 可以用于传值
      Bundle bundle = new Bundle(); //放入数值到bundle
      bundle.putString("a", "aaa");
      //把bundle放入
      fragment.setArguments(bundle);
      //放入fragment
      //第一个参数 布局界面填充容器
      //第二个参数 fragment对象
      tarTransaction.add(R.id.ll,fragment);
      //第二种方法
      //transaction.replace(R.id.ll,fragment);
      //提交事务
      tarTransaction.commit();

14 fragment 创建的更多相关文章

  1. Android 用Fragment创建一个选项卡

    本文结合之前的动态创建fragment来进行一个实践,来实现用Fragment创建一个选项卡 本文地址:http://www.cnblogs.com/wuyudong/p/5898075.html,转 ...

  2. Ubuntu 14 如何创建软件的 启动器/桌面图标?

    如题所示:Ubuntu 14 如何创建软件的 启动器/桌面图标? 解决方案: 将 /usr/share/applications/ 里面的相应图标复制到桌面即可. 同理,也可“拖动”到左边的“启动器栏 ...

  3. 【译】用Fragment创建动态的界面布局(附Android示例代码)

    原文链接:Building a Dynamic UI with Fragments 为了在Android上创建一个动态和多视图的用户界面,你需要封装UI控件和模块化Activity的行为,以便于你能够 ...

  4. 编写利用Fragment创建新闻列表

    编写利用Fragment创建新闻列表 1.创建新闻实体类News,代码如下:   public class News { private String title; private String co ...

  5. 14、创建/恢复ETH钱包身份

    借助网上的一段描述: 若以银行账户为类比,这 5 个词分别对应内容如下: 地址=银行卡号密码=银行卡密码私钥=银行卡号+银行卡密码助记词=银行卡号+银行卡密码Keystore+密码=银行卡号+银行卡密 ...

  6. 14 Fragment 碎片总结

    Fragment 碎片 一, Fragment是什么? Android 3.0以后出现的 Api11 以上 Activity的组成部分 Fragment(小的Activity) Fragment可以显 ...

  7. 使用Fragment创建灵活的用户界面

      什么是Fragment         Fragment的作用像Activity一样,主要用于呈现用户界面,它依附于Activity存在,但比Activity更灵活. 当我们需要创建动态的,多面板 ...

  8. android 之fragment创建

    1.使用xml标签 1.1定义两个重要属性  <fragment         android:id="@+id/fregment_top"        android: ...

  9. IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目

    以往的Eclipse.NetBeans等开发工具不同,IDEA的Project相当与Eclipse的Workspace,而Module相当于Project. 下边就给出Eclipse与IDEA的概念的 ...

随机推荐

  1. hdu 1255 覆盖的面积(求覆盖至少两次以上的面积)

    了校赛,还有什么途径可以申请加入ACM校队?  覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  2. [Codeforces]860E Arkady and a Nobody-men

    屯一个虚树的板子,顺便总结一下这样的题型. Description 给定一棵n个节点的有根树,在输入数据通过给出每个节点的父亲来表示这棵树.若某个节点的父亲为0,那么该节点即为根.现在对于每个点,询问 ...

  3. 使用WebStorm进行javascript调试

    曾经的选择是使用火狐浏览器的Firebug插件,具体的用法到时候在细说,这篇文章登场的是开发静态网页及javascript的利器--webstorm. 一.相关软件安装和配置 安装WebStorm  ...

  4. VMware下安装Linux(CentOs6.3)操作系统

    VMware 10.0.2 CentOs 6.3 VMware的安装以及CentOs的下载比较简单,这里不再描述 1.创建新的虚拟机 2.选择典型 3.选择稍后安装操作系统 4.选择如图所示 5.虚拟 ...

  5. Linux(CentOs6.3)网络配置

    新装好的虚拟机往往还无法连接网络,本文描述了如何在CentOs6.3系统上配置网络信息 1.windows系统下快捷键windows+r,输入cmd并确定,打开黑窗口 2.黑窗口中输入ipconfig ...

  6. (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法以及SQL语句中日期格式的表示(#).('')在Delphi中进行字符变量连接相加时单引号用('' ...

  7. VS2012不能加载想要打开的项目/解决方案

    今天回宿舍用自己的电脑敲代码,想要打开之前的项目,可是VS2012打开之后项目却显示“无法加载” 查了之后才知道原来是由于某个安装包缺少引起的,具体做法请看如下 链接:http://jingyan.b ...

  8. c++ 变量的存储类别

    c++的存储类别 首先我们得知道c++的变量存储方式:静态存储和动态存储两种,全局变量使用的是静态存储,函数的形参和局部变量是使用的动态存储. 当然在有的教程中又分为自动存储,静态存储,动态存储.相信 ...

  9. selenium登录163邮箱

    环境:windows8  python2.7+selenium+chrome 直接上脚本: # coding=utf-8from selenium import webdriverimport tim ...

  10. 安装插件出现eclipse An internal error occurred during: "Installing Software". xxxxxxxxx

    就是你自己本来就有那个插件了 百度怎么删吧.... 看一下我这个文章 强烈建议本地安装的时候用第四种安装 http://www.cnblogs.com/ydymz/articles/7203260.h ...