安卓 setContentView使用「建议收藏」

安卓 setContentView使用「建议收藏」setContentView(R.layout.main)在android代码里经常能看见,R.layout.main是个布局文件即控件,设置如何摆放如何显示的,setContentView就是设置一个Activity的显示界面,这句话就是设置这个这句话所再的Activity采用R.layout下的main布局文件进行布局使用setContentView可以在Activity中动

大家好,又见面了,我是你们的朋友全栈君。setContentView(R.layout.main)
在android代码里经常能看见

R.layout.main是个布局文件即控件,设置如何摆放如何显示的,setContentView就是设置一个Activity的显示界面,
这句话就是设置这个这句话所再的Activity采用R.layout下的main布局文件进行布局

使用setContentView可以在Activity中动态切换显示的View,这样,不需要多个Activity就可以显示不同的界面,
因此不再需要在Activity间传送数据,变量可以直接引用。但是,在android SDK给我们建的默认的Hello World程序中,
调用的是setContentView(int layoutResID)方法,如果使用该方法切换view,在切换后再切换回,无法显示切换前修改后的样子
,也就是说,相当于重新显示一个view,并非是把原来的view隐藏后再显示。其实setContentView是个多态方法,
我们可以先用LayoutInflater把布局xml文件引入成View对象,再通过setContentView(View view)方法来切换视图。
因为所有对View的修改都保存在View对象里,所以,当切换回原来的view时,就可以直接显示原来修改后的样子。

1.常用的构造函数:

  1)setContentView(int layoutResID)

  2)setContentView(View view)

  3)setContentView(View view, ViewGroup.LayoutParams params)

2.用法

复制代码
1)setContentView(R.layout.main);

2)LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

   View view = (View) inflater.inflate(R.layout.apploader, null, true);

   setContentView(view);
复制代码

3.两种用法的适用场景:

    setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来。

    一般在activity中通过setContentView()将界面显示出来,但是如果要在非activity中如何对控件布局进行设置操作,就需LayoutInflater动态加载。

 

LayoutInflater:

获得 LayoutInflater 实例的三种方式

1. LayoutInflater inflater = getLayoutInflater();  //调用Activity的getLayoutInflater()

2. LayoutInflater localinflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

3. LayoutInflater inflater = LayoutInflater.from(context);   

其实,这三种方式本质是相同的,从源码中可以得出结论:这三种方式最终本质是都是调用的Context.getSystemService()。

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153261.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月26日 上午11:36
下一篇 2022年6月26日 上午11:46


相关推荐

  • android插件化-apkplugdemo源代码阅读指南-10

    android插件化-apkplugdemo源代码阅读指南-10

    2021年12月4日
    42
  • FreeWebHostingArea老牌1.5G无限流量免费PHP空间申请使用「建议收藏」

    FreeWebHostingArea老牌1.5G无限流量免费PHP空间申请使用「建议收藏」FreeWebHostingArea是美国的一个老牌的免费空间服务商,从2005年开始提供免费PHP空间服务。我在2009年的时候就推荐过它(这篇文章),到现在这个空间依然还存活着。和同类的老牌的免费空间超多的空间和流量限制等特点所不同,FreeWebHostingArea的免费PHP空间大小1.5GB,月流量为无限流量,并且可以绑定自己的顶级域名。FreeWebHostingArea之所…

    2022年10月8日
    4
  • Proxifier设置代理上网详细操作

    Proxifier设置代理上网详细操作分享知识传递快乐 Proxifier 配置上网代理 Proxifier 是一款功能非常强大的 socks5 客户端 可以让不支持通过代理服务器工作的网络程序能通过 HTTPS 或 SOCKS 代理或代理链 支持 Xp Vista Win7 支持 socks4 socks5 http https 代理协议 支持 TCP UDP 协议 可以指定端口 指定 IP 指定程序等运行模式 兼容性非常好 本人因公司需要

    2026年3月18日
    2
  • 补码 转换_三线8译码器有什么型号

    补码 转换_三线8译码器有什么型号补码转换`timescale1ns/10psmoduledevice(a,a_comp);input[7:0]a;//括号要写在前面output[7:0]a_comp;wire[6:0]b;//按位取反的幅度位wire[7:0]y;//负数的补码assignb=~a[6:0];assigny[6:0]=b+1;//按位取反再加1assigny[7]=a[7];//符号位不变assigna_comp=a[7]?y:a;//二选一endmodulemodule

    2025年12月14日
    5
  • 太上老君内观经

    太上老君内观经老君曰 天地媾精 阴阳布化 万物以生 承其宿业 分灵道一 父母和合 人受其生 始 一月为胞 精血凝也 二月成胎 形兆胚也 三月阳神为三魂 动而生也 四月阴灵为七魄 静镇形也 五月 五行分藏以安神也 六月 六律定腑用滋灵也 七月 七精开窍 通光明也 八月 八景神具 降真灵也 九月 宫室罗布 以定精也 十月气足 万象成也 元和哺食 时不停也 nbsp 太一帝君在头 曰泥丸君 总众神也 照生识神

    2026年3月19日
    2
  • 金士顿16G优盘_金士顿u盘格式化分配单元大小

    金士顿16G优盘_金士顿u盘格式化分配单元大小事情起因好好的金士顿16g优盘(绝对是真的,之前本人已经使用了2年多),今天本来准备用U盘装个win10系统,从微软官网下载了MediaCreationTool.exe用这个工具做了一个U盘系统,然后装系统(系统也没有装成。。。。。悲剧),谁知道重启之后,优盘可以识别,但是只显示一个盘符,没有容量,双击优盘,就显示请插入优盘之类的。换了一台电脑,插上U盘,显示需要格式化,那就格式化吧。。。。。。几

    2025年10月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号