Android之LayoutInflater三种方式分析
来源:互联网 发布:java抓取网页源码 编辑:程序博客网 时间:2024/05/16 01:40
获取LayoutInflater有三种不同的方式,那么这三种方式有什么区别呢?
源码:
① LayoutInflater inflater = LayoutInflater.from(context); (LayoutInflater类)
<span style="font-size:14px;">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; }</span>
② LayoutInflater inflater = getLayoutInflater();(Activity类)
<span style="font-size:14px;color:#330033;">public LayoutInflater getLayoutInflater() { return getWindow().getLayoutInflater();}</span>
public PhoneWindow(Context context) { super(context); mLayoutInflater = LayoutInflater.from(context); }
③ LayoutInflater inflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);(Activity类)
<span style="font-size:14px;color:#330033;"> public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater";</span>ps: Use with
getSystemService(java.lang.String)
to retrieve a android.view.LayoutInflater
for inflating layout resources in this context.从源码上,三种方式在本质都是一样的,②是调用①的方法,而①则是在调用③。java很有意思就是这样子调来调去,给人一种似是而非的感觉。
对于getSystemService类,我们在源码中可以看到提供了很多的Service:
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)位置的服务
SEARCH_SERVICE (SearchManager)搜索的服务
VEBRATOR_SERVICE (Vebrator)手机震动的服务
CONNECTIVITY_SERVICE (Connectivity)网络连接的服务
WIFI_SERVICE (WifiManager)WiFi服务
TELEPHONY_SERVICE (TeleponyManager)电话服务
未完待续
1 0
- Android之LayoutInflater三种方式分析
- Android开发之LayoutInflater的三种实例化方式
- 获取LayoutInflater的三种方式分析
- android LayoutInflater三种获取方式
- android 获取布局填充器的三种方式 LayoutInflater
- Android 获得 LayoutInflater 实例的三种方式
- 生成LayoutInflater的三种方式
- 获得LayoutInflater实例的三种方式
- 生成LayoutInflater的三种方式
- 获得 LayoutInflater 实例的三种方式
- 获得 LayoutInflater 实例的三种方式
- 获取LayoutInflater的三种方式
- 获得 LayoutInflater 实例的三种方式
- 获得 LayoutInflater 实例的三种方式
- 获得 LayoutInflater 实例的三种方式
- 三种获取LayoutInflater对象的方式
- 获取LayoutInflater的三种方式
- 获得 LayoutInflater 实例的三种方式
- 【无中生有】---3---数据库设计-2
- Fibonacci数列(蓝桥杯BEGIN-4)
- 使用flask-ASQLchemy时,Error:No such table
- c#为chart控件添加MouseMove事件
- JAVA中几种读取文件为字符串
- Android之LayoutInflater三种方式分析
- 用Java求出1!+2!+3!+...+n!的结果
- 什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
- ide注释作者名配置
- Cling源码解析
- 第六周项目4.1 成员函数 友元函数和一般函数有区别——阅读程序,体会注释中的说明
- Android PowerImageView实现,可以播放动画的强大ImageView
- Oracle Fusion Middleware 基础知识总结
- Unity Error:UnityEditor.EditorApplicationLayout:FinalizePlaymodeLayout()