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中的對象,本布局中無法使用。