Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。 
LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。

她可以有很多地方可以使用,如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。
它的用法有2种:

  
LayoutInflater inflater = LayoutInflater.from(this);     View view=inflater.inflate(R.layout.ID, null);    或者干脆并成一句:    View view=LayoutInflater.from(this).inflate(R.layout.ID, null);    


另一种方法:   

LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);    View view=inflater.inflate(R.layout.ID, null);    
上面2种方法本质上是一样的,看下面的源码,form()调用的就是getSystemService(): 
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 电话服务
//基本用法    public void showCustomDialog(){    AlertDialog.Builder builder;    AlertDialog alertDialog;    Context mContext = AppActivity.this;    //下面俩种方法都可以    //LayoutInflater inflater = getLayoutInflater();    LayoutInflater inflater = (LayoutInflater)     mContext.getSystemService(LAYOUT_INFLATER_SERVICE);    View layout = inflater.inflate(R.layout.custom_dialog,null);    TextView text = (TextView) layout.findViewById(R.id.text);      text.setText("Hello, Welcome to Mr Wei's blog!");    ImageView image = (ImageView) layout.findViewById(R.id.image);      image.setImageResource(R.drawable.icon);      builder = new AlertDialog.Builder(mContext);      builder.setView(layout);      alertDialog = builder.create();     alertDialog.show();        }    }        protected void showToast(int type) {              Toast.makeText(this, "*********", Toast.LENGTH_LONG).show();                    LayoutInflater li = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);              View view = li.inflate(R.layout.toast, null);                            Toast toast = new Toast(this);              toast.setView(view);              toast.setDuration(type);              toast.show();          }      


更多相关文章

  1. tcping测试服务器TCP端口
  2. android Unterminated string at character 44 of
  3. Android实战总结之返回键返回上一级Activity(Intent的一种用法)
  4. Android(安卓)Service的生命周期2
  5. android xml文件中进行上传图片以及获取图片
  6. Android(安卓)获取远程服务器时间
  7. Android(安卓)savedInstanceState的作用和用法
  8. Android入门教程之ListView的应用示例
  9. android定位服务

随机推荐

  1. Android(安卓)下拉刷新 ListRefresh 从网
  2. 为Android写的WebService调用组件
  3. Android(安卓)project structure
  4. android 保存和读取文件
  5. Android(安卓)中RecyclerView使用详解(一)
  6. android中colors.xml中用到的主要颜色的
  7. Android黄色警告汇总
  8. Android监听USB连接/断开,充电/未充电
  9. 【转】Android(安卓)SDK版本与API Level
  10. 【Android】利用广播Broadcast接收SMS短