android之LayoutInflater详解_什么是LayoutInflater

作用:LayoutInflater作用是将layout的xml布局文件实例化为View类对象 对于常见的一个已经载入的Activity, 我们可以使用findViewById方法来获得其中的界面元素. 而对于一个没有被载入或者想要动态载入的界面, 就需要使用inflate来载入了. 方法:    Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Acti

大家好,又见面了,我是全栈君。


 
作用:LayoutInflater作用是将layout的xml布局文件实例化为View类对象 



对于常见的一个已经载入的Activity, 我们可以使用findViewById方法来获得其中的界面元素. 而对于一个没有被载入或者想要动态载入的界面, 就需要使用inflate来载入了. 

方法: 
   Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面. 
其实在Activity里面也可以使用LayoutInflater来载入界面, 通过
getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以获得一个 LayoutInflater, 也可以通过LayoutInflater inflater = getLayoutInflater();来获得.然后使用inflate方法来载入layout的xml, 

下面是一个简单的例子:

首先我们要知道,什么是已经被载入的layout,什么是还没有载入的.我们启动一个应用,在入口Activity中被使用的layout{常见的是main.xml}就是被载入的,即在Oncreate()中的.而其他的layout是没有被载入的.就要动态载入了或通过另一个activity.

在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化,而findViewById()是找具体xml下的具体widget控件.
 
为了让大家容易理解我[转]做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。
android之LayoutInflater详解_什么是LayoutInflater

代码如下:
package com.jason;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;


public class MainActivity extends Activity implements OnClickListener {


private Button button;


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}


@Override
public void onClick(View v) {
showCustomDialog();
}


public void showCustomDialog() {
  AlertDialog.Builder builder;
  AlertDialog alertDialog;
  Context mContext = MainActivity.this;
  LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
  View layout = inflater.inflate(R.layout.custom_dialog, null);
  TextView text = (TextView) layout.findViewById(R.id.text);
  text.setText("Hello, Welcome to Mr Wei's blog!");
  ImageView image = (ImageView) layout.findViewById(R.id.image);
  image.setImageResource(R.drawable.icon);
  builder = new AlertDialog.Builder(mContext);
  builder.setView(layout);
  alertDialog = builder.create();
  alertDialog.show();
}
}

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

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

(0)
上一篇 2022年3月9日 上午9:00
下一篇 2022年3月9日 上午9:00


相关推荐

  • CAN协议通信「建议收藏」

    CAN协议通信「建议收藏」CAN协议广泛应用于车辆诊断通信中,学习它的过程,就像学习一种与车辆沟通的语言,让我更深入的了解汽车的世界。感受汽车的精彩

    2022年6月28日
    65
  • Win10运行PS很卡,分享几种解决Win10用PS卡顿提速设置方法

    Win10运行PS很卡,分享几种解决Win10用PS卡顿提速设置方法转载自品略图书馆http://www.pinlue.com/article/2020/04/0117/3410102560823.html最近升级了Win10系统,安装了PS软件准备工作,但是命使用中发现PS很卡,卡顿问题比较明显,极度的影响使用,那么如何解决呢?下面小编整理了解决方法,相信通过以下的设置之后,PS卡顿问题可以解决。与自定义配置是有很大关系的。特别是一些新功能的加入,在一些低配置电脑上往往会有事倍功半的“奇效”。如果你的PS用起来很卡,不妨赶快检查以下几个选项,可以瞬间提速1..

    2022年5月7日
    105
  • 机器学习算法整理(内含代码)

    机器学习算法整理(内含代码)一般来说,机器学习有三种算法:1.监督式学习 监督式学习算法包括一个目标变量(也就是因变量)和用来预测目标变量的预测变量(相当于自变量).通过这些变量,我们可以搭建一个模型,从而对于一个自变量,我们可以得到对应的因变量.重复训练这个模型,直到它能在训练数据集上达到理想的准确率属于监督式学习的算法有:回归模型,决策树,随机森林,K近邻算法,逻辑回归等算法2.无监督式算法无监督式学

    2022年6月18日
    38
  • 2020手机的像素密度ppi排行_5g手机排行榜最新2020年11月5g手机性价比排行榜

    2020手机的像素密度ppi排行_5g手机排行榜最新2020年11月5g手机性价比排行榜注:本文转载自网络,不代表本平台立场,仅供读者参考,著作权属归原创者所有。我们分享此文出于传播更多资讯之目的。如有侵权,请在后台留言联系我们进行删除,谢谢!相信对很多朋友们来说,一款好用的5G智能手机是非常值得入手的,小编为大家带来最新的20年11月值得购买的性价比5G手机榜单,相信会给您更好的手机选购指导,为你带来更好的智能生活体验,有喜欢的朋友们一起来看看吧。1、一加8Pro性能一…

    2022年5月8日
    170
  • Dubbo框架介绍「建议收藏」

    Dubbo是一个常用的分布式服务框架,它致力于提供高性能和透明化的RPC远程调用服务方案,Dubbo有助于开发企业级的开发效率,以及可以通过简单的配置就可以做到负载均衡。   一、Dubbo的基础知识   1.Dubbo是什么   2.Dubbo涉及的知识      二、Dubbo框架设计介绍   1.Dubbo的各个角色

    2022年4月13日
    34
  • 保姆级教程|OpenClaw 飞书机器人对接,新手也能10分钟上手

    保姆级教程|OpenClaw 飞书机器人对接,新手也能10分钟上手

    2026年3月15日
    3

发表回复

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

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