天天看點

Android中inflate簡介

                           Android中inflate簡介

      inflate的作用是把xml檔案找出來,然後再使用找出來的xml檔案中的控件。

      使用場景: 

      我們都知道,一個activity一般會綁定一個布局,然後我們使用findViewById()來尋找綁定的布局裡的控件,

       當我們需要使用另一個layout布局中的控件的時候就需要使用inflate了

      例如: View view=View.inflate(this,R.layout.dialog_layout,null);

     TextViewdialogTV=(TextView)view.findViewById(R.id.dialog_tv);

     dialogTV.setText("abcd");

  如果直接用this.findViewById(R.id.dialog_tv)肯定會報錯

  當然也可以使用LayoutInflater

       有三種方式:

       LayoutInflaterinflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

      View layout =inflater.inflate(R.layout.main, null);

      LayoutInflater inflater =LayoutInflater.from(context);

   【Attention】

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference

為什麼程式中會報這個錯誤,他說你找的是一個空對象,原因一半如下:

1、你沒有findViewById(xxx)就是你沒有找到控件卻使用了,這個時候會告訴你對象為空。

2、你找了,但你找的是其他xml中的對象,本布局中無法使用。