Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。
LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。
她可以有很多地方可以使用,如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。
它的用法有2种:
Java代码
-
view plaincopy to clipboardprint?
-
LayoutInflater inflater = LayoutInflater.from(this);
-
View view=inflater.inflate(R.layout.ID, null);
-
或者干脆并成一句:
- View view=LayoutInflater.from(this).inflate(R.layout.ID, null);
另一种方法:
Java代码
-
view plaincopy to clipboardprint?
-
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
- View view=inflater.inflate(R.layout.ID, null);
上面2种方法本质上是一样的,看下面的源码,form()调用的就是getSystemService():
Java代码
-
Java代码
-
public static LayoutInflater from(Context context) {
-
LayoutInflater LayoutInflater =
-
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
if (LayoutInflater == null) {
-
throw new AssertionError("LayoutInflater not found.");
-
}
-
return LayoutInflater;
- }
另外getSystemService()是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。
传入的Name |
返回的对象 |
说明 |
WINDOW_SERVICE |
WindowManager |
管理打开的窗口程序 |
LAYOUT_INFLATER_SERVICE |
LayoutInflater |
取得xml里定义的view |
ACTIVITY_SERVICE |
ActivityManager |
管理应用程序的系统状态 |
POWER_SERVICE |
PowerManger |
电源的服务 |
ALARM_SERVICE |
AlarmManager |
闹钟的服务 |
NOTIFICATION_SERVICE |
NotificationManager |
状态栏的服务 |
KEYGUARD_SERVICE |
KeyguardManager |
键盘锁的服务 |
LOCATION_SERVICE |
LocationManager |
位置的服务,如GPS |
SEARCH_SERVICE |
SearchManager |
搜索的服务 |
VEBRATOR_SERVICE |
Vebrator |
手机震动的服务 |
CONNECTIVITY_SERVICE |
Connectivity |
网络连接的服务 |
WIFI_SERVICE |
WifiManager |
Wi-Fi服务 |
TELEPHONY_SERVICE |
TeleponyManager |
电话服务 |
分享到:
相关推荐
老罗的PPT可能详细解析了这些层次的功能和相互关系,让你对Android系统有一个全面的认识。 Android应用程序主要使用Java语言编写,但也支持Kotlin等现代语言。PPT中可能会介绍如何搭建开发环境,包括安装Android ...
在Android应用开发中,Fragment是Android SDK提供的一种组件,它允许开发者...通过学习这个示例,开发者可以对Fragment有一个初步的认识,并能够将Fragment集成到自己的Android应用中,实现更加复杂和动态的用户界面。
例如,你可以使用LayoutInflater类来从XML布局文件中加载组件,然后使用addView方法将其添加到父布局中。同时,通过findViewById方法可以获取已定义的组件实例,以便对其进行操作。 总之,Android的基本组件是构建...
9. **XML布局动态加载**:通过LayoutInflater将XML布局动态地加载到运行时的视图层次结构中,是实现界面动态生成的关键。 10. **生命周期管理**:Activity有明确的生命周期,包括onCreate(), onStart(), onResume()...
在`onCreateViewHolder`中,你可以通过`LayoutInflater.from(context).inflate(R.layout.item_file, parent, false)`来创建一个新的视图并返回一个ViewHolder实例。 文件列表的每个项通常包含文件名、类型图标、...
《Android音乐播放器悬浮窗实现详解》 在移动设备上,音乐...通过本文的讲解,希望你对Android音乐播放器悬浮窗的实现有了深入的认识。不断探索和实践,才能在这个充满无限可能的平台中创造出更多精彩的用户体验。
- 该项目通过分析Android系统中的设计模式来帮助开发者深入理解模式的应用场景。 - **目标**:增强开发者对设计模式的认识并提升编码质量。 - **simple-android-opensource-framework** - 该项目提供了对一些知名...
在这个方法中,你可以通过LayoutInflater实例化Item布局,然后根据数据填充各个控件。 4. **监听器**:通过设置OnItemClickListener,你可以监听ListView项的点击事件。在回调方法`onItemClick()`中,你可以获取被...
在Android开发中,`RecyclerView`是一个非常重要的组件,它用于高效地展示大量数据集合,尤其在处理滚动列表时,性能优越。本篇文章将深入探讨`RecyclerView`的基础知识,包括其工作原理、设置与使用方法、适配器和...