您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 【Android动态布局】之【LayoutInflater的使用】
在实际工作中,事先写好的布局文件往往不能满足我们的需求,有时会根据情况在代码中自定义控件,这就需要用到LayoutInflater。LayoutInflater在Android中是“扩展”的意思,作用类似于findViewById(),不同的是LayoutInflater是用来获得布局文件对象的,而findViewById()是用来获得具体控件的。LayoutInflater经常在BaseAdapter的getView方法中用到,用来获取整个View并返回。LayoutInflater的用法有三种:第一种方法:[java]viewplaincopy1.LayoutInflaterinflater=LayoutInflater.from(this);2.Viewlayout=inflater.inflate(R.layout.main,null);第二种方法:[java]viewplaincopy1.LayoutInflaterinflater=getLayoutInflater();2.Viewlayout=inflater.inflate(R.layout.main,null);第三种方法:[java]viewplaincopy1.LayoutInflaterinflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);2.Viewlayout=inflater.inflate(R.layout.main,null);第一种方法的本质就是调用第三种方法,而第二种方法和第三种方法有什么区别,我还真不知道,有哪位知道的请留言指教啊!下面是简单的使用示例:[java]viewplaincopy1.publicclassLayoutInflaterActivityextendsActivity{2.privateEditTextet;3.privateButtonbtn;4.5.@Override6.publicvoidonCreate(BundlesavedInstanceState){7.super.onCreate(savedInstanceState);8.//第一种方法9.LayoutInflaterinflater=LayoutInflater.from(this);10.Viewlayout=inflater.inflate(R.layout.main,null);11.//第二种方法12.//LayoutInflaterinflater=getLayoutInflater();13.//Viewlayout=inflater.inflate(R.layout.main,null);14.//第三种方法15.//LayoutInflaterinflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);16.//Viewlayout=inflater.inflate(R.layout.main,null);17.//这里是通过事先获得的布局文件来实例化具体控件,并且可以根据情况自定义控件18.et=(EditText)layout.findViewById(R.id.edittext);19.et.setBackgroundColor(Color.YELLOW);20.btn=(Button)layout.findViewById(R.id.btn);21.btn.setBackgroundColor(Color.CYAN);22.//显示23.setContentView(layout);24.}25.}另外补充下,getSystemService是Activity中的方法,根据传入的name来取得对应的服务对象,这些服务名称参数都是Context类中的常量:传入的Name返回的对象说明WINDOW_SERVICEWindowManager管理打开的窗口程序LAYOUT_INFLATER_SERVICELayoutInflater取得xml里定义的viewACTIVITY_SERVICEActivityManager管理应用程序的系统状态POWER_SERVICEPowerManger电源的服务ALARM_SERVICEAlarmManager闹钟的服务NOTIFICATION_SERVICENotificationManager状态栏的服务KEYGUARD_SERVICEKeyguardManager键盘锁的服务LOCATION_SERVICELocationManager位置的服务,如GPSSEARCH_SERVICESearchManager搜索的服务VEBRATOR_SERVICEVebrator手机震动的服务CONNECTIVITY_SERVICEConnectivity网络连接的服务WIFI_SERVICEWifiManagerWi-Fi服务TELEPHONY_SERVICETeleponyManager电话服务
本文标题:【Android动态布局】之【LayoutInflater的使用】
链接地址:https://www.777doc.com/doc-2806501 .html