将Fragment添加到Activity中

Fragment的布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><TextViewandroid:id="@+id/tv_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#000"android:text="我是AFragment"android:textSize="20sp"android:gravity="center"/></LinearLayout>

Activity的布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"
><Buttonandroid:id="@+id/btn_change"android:layout_width="match_parent"android:layout_height="50dp"android:text="更换fragment"/><FrameLayout                                            //用于放置Fragmentandroid:id="@+id/fl_container"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/btn_change"/>
</RelativeLayout>

将这个AFragment添加到Activity中去,通过Activity中的java代码

private AFragment mAFragment;//实例化AFragmentmAFragment=new AFragment();//将AFragment添加到activity中去,记得调用commit
getSupportFragmentManager()beginTransaction().add(R.id.fl_container,mAFragment).commitAllowingStateLoss();

效果显示:

点击按钮将AFragment切换成BFragment

 mbtnChange=(Button)findViewById(R.id.btn_change);mbtnChange.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(mBFragment==null){mBFragment=new BFragment();}getSupportFragmentManager().beginTransaction().replace(R.id.fl_container,mBFragment).commitAllowingStateLoss();    //这里将add方法换成replace方法}});

效果展示:

参数传递——通过setArguements()

注意:不能直接写一个带参数的构造函数来传递参数

在AFragment中的java代码:

public class AFragment extends Fragment {private TextView mTvtitle;//  private Activity mActivity;public static AFragment setInstance(String title){   //Fragment传递参数AFragment afragment=new AFragment();Bundle bundle=new Bundle();bundle.putString("title",title);afragment.setArguments(bundle);return afragment;}@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view =inflater.inflate(R.layout.fragment_a,container,false);   //找到布局文件//return super.onCreateView(inflater, container, savedInstanceState);return view;}@Overridepublic void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);mTvtitle=(TextView)view.findViewById(R.id.tv_title);   //找到组件if(getArguments()!=null){mTvtitle.setText(getArguments().getString("title"));   //得到传递的参数}}}

在Activity的java代码中:

mAFragment=AFragment.setInstance("我是参数");    //通过setInstance设置参数//将AFragment添加到activity中去,记得调用commitgetSupportFragmentManager().beginTransaction().add(R.id.fl_container,mAFragment).commitAllowingStateLoss();

效果显示:

Android学习笔记(十一)——将Fragment添加到Activity中以及参数传递相关推荐

  1. Android学习笔记(四):在Activity中跳转--Intent的使用

    Android学习笔记(四):在Activity中跳转--Intent的使用 上篇,我们实战了一个很小的项目BMI,通过BMI这个项目,可以很好的理解Activity的程序结构,以方便后面高级API的 ...

  2. Android学习笔记13-Acitivty与Fragment通信

    1,概述 首先,如果要实现Activity与其他的Fragment之间实现通信,那么这个Fragment需要拥有一个独立的Layout文件,以便重用,并且以代码添加的方式出现在Activity中. 这 ...

  3. android学习笔记---33_为应用添加多个Activity与参数传递

    33_为应用添加多个Activity与参数传递 ------------------------------------------ 1.一个activity代表一个的窗口,那么一个应用中往往会有很多 ...

  4. android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用

    1.为应用添加新的Activity 第一步:新建一个继承Activity的类,如:NewActivity public class NewActivity extends Activity {     ...

  5. 好记性不如烂笔杆-android学习笔记十一 Service的应用

    23,//Service的应用 <1>//manifest.xml对service注册 <service android:name=".FirstService" ...

  6. Android学习笔记----SQLiteDatabase 自带添加、删除、更新、查询的操作方法:实现添加,删除,更新,查询,和分页,统计

    7.除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应 于添加.删除.更新.查询的操作方法: insert().delete().upda ...

  7. android学习笔记---60_meta-data的使用,在清单文件中是用meta-data来给activity,service,receiver提供参数

    2013/5/19 Java技术qq交流群:JavaDream:251572072 60_meta-data的使用 ------------------------------------------ ...

  8. Android学习笔记---监听ContentProvider(内容共享者)中数据的变化

    2013-03-16 监听ContentProvider中数据的变化 ------------------------------------------ 1.如果ContentProvider的访问 ...

  9. android学习笔记Fragment的使用

    Fragment的内容感觉好多啊,主要需要掌握Fragment静态加载,Fragment动态加载,Fragment的生命周期,Fragment与Activity的交互 1,Fragment的静态加载 ...

最新文章

  1. 2017年7月十三日正式开始记录
  2. [Contest20170910]string
  3. SQL Server 2008 R2——分组取前几名
  4. 【bzoj5084】hashit 广义后缀自动机+树链的并+STL-set
  5. android 之Activity的五种传值方式 (在从当前Activity跳转到目标Activity时的传值方式)
  6. [导入]查询锁定表中非锁定记录。
  7. 肝!计算机网络基础知识总结
  8. ubuntu_常用命令_01
  9. mysql快捷创建数据库_mysql数据库快速入门(1)
  10. Android Studio提示No virtual method asBitmap()Lcom/bumptech/glide/RequestBuilder
  11. 顺丰物流单号查询效果(可输入多个文本框)
  12. Windows Mobile下使用Native C++开发日志类
  13. Professional C# 6 and .NET Core 1.0 - Chapter 43 WebHooks and SignalR
  14. Web 3.0 宣言:为什么 Web 3.0 至关重要
  15. L1-029 是不是太胖了 (5 分)—团体程序设计天梯赛
  16. OpenJDK 源码阅读之 Java 字节流输入类的实现
  17. 使用C# WinForm实现打印小票的功能
  18. React 与 React-Native 使用同一个 meteor 后台
  19. 2018.10.24-day3 python总结
  20. 《深入理解JVM虚拟机》读书笔记(一)

热门文章

  1. Linux2.6内核本地提权
  2. ORA-19504,乌龙处理
  3. 每首歌都保存着一份记忆
  4. 写代码需要注意的几方面
  5. JAVA语法——经典题目02
  6. koa如何实现Oauth2(一)
  7. 第一次冲刺-站立会议03
  8. BFC(块级化上下文)
  9. 基于CSS3的3D旋转效果
  10. 全面进军javascript!