LayoutInflater,layoutinflater.inflate方法详解

LayoutInflater,layoutinflater.inflate方法详解,Android开发中LayoutInflater用法详解

这篇文章主要介绍了机器人开发中布局充气机用法,结合实例形式分析了布局充气机类的功能、作用、使用方法及相关注意事项,需要的朋友可以参考下

本文实例讲述了机器人开发中布局充气机用法。分享给大家供大家参考,具体如下:

在实际开发中布局充气机这个类还是非常有用的,它的作用类似于findViewById()。不同点是布局充气机是用来找分辨率/布局/下的可扩展标记语言布局文件,并且实例化;而findViewById()是找可扩展标记语言布局文件下的具体小部件控件(如按钮、文本视图等)。

具体作用:

1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;

2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。

布局充气机是一个抽象类,在文档中如下声明:

公共抽象类layoutfinflater扩展对象

获得 LayoutInflater 实例的三种方式

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

2.充气机。来自(上下文);

3.LayoutInflater inflater=(LayoutInflater)上下文。getsystem服务

(上下文. LAYOUT _ INFLATER _ SERVICE);

其实,这三种方式本质是相同的,从源码中可以看出:

getLayoutInflater():

活动的getLayoutInflater()方法是调用电话窗口的getLayoutInflater()方法,看一下该源代码:

公共电话窗口(上下文上下文)

{

超级(上下文);

mLayoutInflater=layoutinflater。来自(上下文);

}

可以看出它其实是调用LayoutInflater.from(上下文).

LayoutInflater.from(context):

公共静态布局来自(上下文上下文)

{

layoutin flater layoutin flater=(layoutin flater)上下文。getsystem服务

(上下文. LAYOUT _ INFLATER _ SERVICE);

if (LayoutInflater==null)

{

抛出新的AssertionError(找不到布局稍后.);

}

返回layoutfinflater

}

可以看出它其实调用context.getSystemService()。

结论:所以这三种方式最终本质是都是调用的Context.getSystemService()。

另外getSystemService()是机器人很重要的一个API,它是活动的一个方法,根据传入的名字来取得对应的对象,然后转换成相应的服务对象。以下介绍系统相应的服务。

传入的名字

返回的对象

说明

窗口_服务

窗口管理器

管理打开的窗口程序

布局_充气机_服务

布局充气机

取得可扩展标记语言里定义的视角

活动_服务

活动经理

管理应用程序的系统状态

电源_服务

PowerManger

电源的服务

报警_服务

报警管理器

闹钟的服务

通知_服务

通知经理

状态栏的服务

键盘守卫_服务

KeyguardManager

键盘锁的服务

位置_服务

LocationManager

位置的服务,如全球(卫星)定位系统

搜索_服务

搜索管理器

搜索的服务

振动服务

韦布拉特

手机震动的服务

连通性_服务

连通性

网络连接的服务

WIFI _服务

WifiManager

无线保真服务

电话服务

电话经理

电话服务

inflate 方法

通过软件开发工具包的美国石油学会(美国石油协会)文档,可以知道该方法有以下几种过载形式,返回值均是视角对象,如下:

公共视图膨胀(内部资源,视图组根)

公共视图展开(XmlPullParser解析器,视图组根)

公共视图膨胀(XmlPullParser解析器、视图组根、布尔attachToRoot)

公共视图膨胀(int resource,ViewGroup root,boolean attachToRoot)

示意代码:

LayoutInflater INFLATER=(LayoutInflater)get system SERVICE(LAYOUT _ INFLATER _ SERVICE);

视图视图=充气机。膨胀(r .布局。自定义,(视图组)findViewById(r . id。测试));

//EditText EditText=(EditText)findViewById(r . id . content);//错误

EditText EditText=(EditText)view . findviewbyid(r . id . content);

对于上面的代码,指定了第二个参数ViewGroup root。当然,也可以将其设置为空值。

注意:

inflate方法不同于findViewById方法;

inflater用于查找res/layout下的xml布局文件并实例化;

findViewById()是查找特定的widget控件(如Button、TextView等。)在特定的xml布局文件中。

更多对Android相关内容感兴趣的读者,请参考我们的专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》和《Android布局layout技巧总结》。

希望这篇文章对大家的Android编程有所帮助。

LayoutInflater,layoutinflater.inflate方法详解