Android学习笔记(十一)——将Fragment添加到Activity中以及参数传递
将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中以及参数传递相关推荐
- Android学习笔记(四):在Activity中跳转--Intent的使用
Android学习笔记(四):在Activity中跳转--Intent的使用 上篇,我们实战了一个很小的项目BMI,通过BMI这个项目,可以很好的理解Activity的程序结构,以方便后面高级API的 ...
- Android学习笔记13-Acitivty与Fragment通信
1,概述 首先,如果要实现Activity与其他的Fragment之间实现通信,那么这个Fragment需要拥有一个独立的Layout文件,以便重用,并且以代码添加的方式出现在Activity中. 这 ...
- android学习笔记---33_为应用添加多个Activity与参数传递
33_为应用添加多个Activity与参数传递 ------------------------------------------ 1.一个activity代表一个的窗口,那么一个应用中往往会有很多 ...
- android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用
1.为应用添加新的Activity 第一步:新建一个继承Activity的类,如:NewActivity public class NewActivity extends Activity { ...
- 好记性不如烂笔杆-android学习笔记十一 Service的应用
23,//Service的应用 <1>//manifest.xml对service注册 <service android:name=".FirstService" ...
- Android学习笔记----SQLiteDatabase 自带添加、删除、更新、查询的操作方法:实现添加,删除,更新,查询,和分页,统计
7.除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应 于添加.删除.更新.查询的操作方法: insert().delete().upda ...
- android学习笔记---60_meta-data的使用,在清单文件中是用meta-data来给activity,service,receiver提供参数
2013/5/19 Java技术qq交流群:JavaDream:251572072 60_meta-data的使用 ------------------------------------------ ...
- Android学习笔记---监听ContentProvider(内容共享者)中数据的变化
2013-03-16 监听ContentProvider中数据的变化 ------------------------------------------ 1.如果ContentProvider的访问 ...
- android学习笔记Fragment的使用
Fragment的内容感觉好多啊,主要需要掌握Fragment静态加载,Fragment动态加载,Fragment的生命周期,Fragment与Activity的交互 1,Fragment的静态加载 ...
最新文章
- 2017年7月十三日正式开始记录
- [Contest20170910]string
- SQL Server 2008 R2——分组取前几名
- 【bzoj5084】hashit 广义后缀自动机+树链的并+STL-set
- android 之Activity的五种传值方式 (在从当前Activity跳转到目标Activity时的传值方式)
- [导入]查询锁定表中非锁定记录。
- 肝!计算机网络基础知识总结
- ubuntu_常用命令_01
- mysql快捷创建数据库_mysql数据库快速入门(1)
- Android Studio提示No virtual method asBitmap()Lcom/bumptech/glide/RequestBuilder
- 顺丰物流单号查询效果(可输入多个文本框)
- Windows Mobile下使用Native C++开发日志类
- Professional C# 6 and .NET Core 1.0 - Chapter 43 WebHooks and SignalR
- Web 3.0 宣言:为什么 Web 3.0 至关重要
- L1-029 是不是太胖了 (5 分)—团体程序设计天梯赛
- OpenJDK 源码阅读之 Java 字节流输入类的实现
- 使用C# WinForm实现打印小票的功能
- React 与 React-Native 使用同一个 meteor 后台
- 2018.10.24-day3 python总结
- 《深入理解JVM虚拟机》读书笔记(一)