安卓 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • servlet的基本原理_简述arp的工作原理

    servlet的基本原理_简述arp的工作原理Web技术成为当今主流的互联网Web应用技术之一,而Servlet是JavaWeb技术的核心基础。因而掌握Servlet的工作原理是成为一名合格的JavaWeb技术开发人员的基本要求。本文将带你认识JavaWeb技术是如何基于Servlet工作,以Tomcat为例了解Servlet容器是如何工作的?一个Web工程在Servlet容器中是如何启动的?

    2022年10月4日
    4
  • linux pycharm激活码[免费获取][通俗易懂]

    (linux pycharm激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    243
  • vscode配置javaweb环境_vscode electron

    vscode配置javaweb环境_vscode electronVScode配置Java环境1、下载VSCodeVSCode下载官网2、配置中文环境如果懂英语,或者想在编程上有更好的进步,可以跳过这一步,毕竟以后工作,很多软件并非中文,但像我这样的英语困难户,还是下载了该插件,毕竟香啊(〃 ̄︶ ̄)在VSCode的左侧点击小方块,搜索Chinese(Simplified)LanguagePackforVisualStudioCode插件,点击安装。(这是安装后的界面)3、配置相关插件和Java的JDK1、新建文件(快捷键Ctrl

    2022年10月3日
    4
  • Oracle存储过程及参数理解

    Oracle存储过程及参数理解一、过程(存储过程)    过程是一个能执行某个特定操作的子程序。使用CREATEORREPLACE创建或者替换保存在数据库中的一个子程序。示例1:声明存储过程,该过程返回dept表行数DECLARE  PROCEDUREgetDeptCount  AS    deptCountINT;  BEGIN    SELECTCOUNT(*)INTOdeptCountFROMDEPT…

    2022年7月17日
    25
  • VMware——VMware Tools的介绍及安装方法

    VMware——VMware Tools的介绍及安装方法VMware——VMwareTools的介绍及安装方法一、VMwareTools的作用二、VMwareTools的安装步骤参考文章一、VMwareTools的作用1.最大的好处是可以直接把windows界面的文件拖进linux虚拟机内。2.鼠标可以直接从虚拟机移动到windows等等好处。二、VMwareTools的安装步骤首先把linux虚拟机关机或退出,然后点击“编辑虚拟机设置”。点击CD/DVD,选择使用物理驱动器–自动检测。运行虚拟机虚拟机-安装vm

    2022年5月10日
    54
  • CentOS下的Apache和PHP的编译安装

    CentOS下的Apache和PHP的编译安装

    2021年8月21日
    58

发表回复

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

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