Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android數據填充器LayoutInflater

Android數據填充器LayoutInflater

編輯:關於Android編程

LayoutInflater類在應用程序中比較實用,可以叫布局填充器,也可以成為打氣筒,意思就是將布局文件填充到自己想要的位置,LayoutInflater是用來找res/layout/下的xml布局文件,並且實例化這個XML文件成為一個View,有點類似於類似於findViewById(),但是findViewById()是找xml布局文件下的具體widget控件(Button、TextView)。對於一個沒有被載入或者想要動態載入的界面,都需要使用LayoutInflater.inflate()來載入;對於一個已經載入的界面,使用Activiyt.findViewById()方法來獲得其中的界面元素。   LayoutInflater實例方式   首先簡單看下三種簡單的實例方式:     LayoutInflater layoutInflater = getLayoutInflater(); LayoutInflater layoutInflater2 = LayoutInflater.from(this); LayoutInflater layoutInflater3 = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 第一種getLayoutInflater方式:   public LayoutInflater getLayoutInflater() {      return getWindow().getLayoutInflater();  } 第二種實現方式:   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,第一種也是~   LayoutInflater實現Demo   LayOutInflater填充布局的時候有四種方法,Demo使用第一種:   resource:需要加載布局文件的id,需要將這個布局文件中加載到Activity中來操作。   root:inflate()會返回一個View對象如果root不為null,就將這個root作為根對象返回,作為這個xml文件的根視圖,如果是null,那麼這個xml文件本身就是一個根視圖:     public View inflate (int resource, ViewGroup root)   public View inflate (XmlPullParser parser, ViewGroup root)       public View inflate (XmlPullParser parser, ViewGroup root, boolean attachToRoot)       public View inflate (int resource, ViewGroup root, boolean attachToRoot)  看下實現的結果:           在主窗體中定義一個按鈕,這個代碼就不貼了~直接寫點擊事件的處理吧:   定義一個Item文件:     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/test"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >       <TextView         android:id="@+id/inflate_txt"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:text="測試"/>   </LinearLayout>   點擊事件的處理:   LayoutInflater layoutInflater = getLayoutInflater(); View view = layoutInflater.inflate(R.layout.item, null); TextView text = (TextView) view.findViewById(R.id.inflate_txt); text.setText("http://www.cnblogs.com/xiaofeixiang"); text.setTextSize(18); text.setTextColor(Color.RED); AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setView(view); AlertDialog  alertDialog = builder.create(); alertDialog.show();
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved