这篇文章主要介绍了机器人开发中布局充气机用法,结合实例形式分析了布局充气机类的功能、作用、使用方法及相关注意事项,需要的朋友可以参考下
本文实例讲述了机器人开发中布局充气机用法。分享给大家供大家参考,具体如下:
在实际开发中布局充气机这个类还是非常有用的,它的作用类似于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编程有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。