0

我越來越NullPointerException當我試圖以編程方式虛增視圖添加到我的ViewFlipper動態地添加膨脹意見ViewFlipper導致空指針異常

- 的onCreate

setContentView(R.layout.event_report); 

final LayoutInflater inflater = getLayoutInflater(); 
mFlipper = (ViewFlipper) findViewById(R.id.eventReportViewFlipper); 

final View typeView = inflater 
      .inflate(R.layout.event_report_type, null) 
mFlipper.addView(typeView, VIEW_TYPE, null); //NullPointerException 

- event_report。 XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/darker_gray" 
    android:orientation="vertical"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/background_dark" 
     android:gravity="center" 
     android:text="@string/eventReportCaption" 
     android:textAppearance="?android:attr/textAppearanceLarge"/> 
    <ViewFlipper 
     android:id="@+id/eventReportViewFlipper" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
</LinearLayout> 

- event_report_type.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 
    <LinearLayout 
     android:id="@+id/eventReportViewTypeUpperLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:orientation="horizontal"> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1"/> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/eventReportViewTypeLowerLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:orientation="horizontal"> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1"/> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_weight="1"/> 
    </LinearLayout> 
</LinearLayout> 

我打算以後初始化typeView。

這裏是我的堆棧跟蹤:

11-28 16:59:56.280: E/AndroidRuntime(8604): Caused by: java.lang.NullPointerException 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.view.ViewGroup$LayoutParams.<init>(ViewGroup.java:3582) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3732) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:492) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:436) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.view.ViewGroup.addViewInner(ViewGroup.java:1984) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.view.ViewGroup.addView(ViewGroup.java:1874) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at android.widget.ViewAnimator.addView(ViewAnimator.java:160) 
11-28 16:59:56.280: E/AndroidRuntime(8604):  at fi.emicode.flashpoint.EventDialog.onCreate(EventDialog.java:43) 
+1

指正。您明確地在參數中傳遞null,然後想知道爲什麼會有NullPointerException。 – ernazm

回答

2

這是從addView方法

addView(View child, int index, ViewGroup.LayoutParams params) 

的Android文檔的類型爲int的view_type?

我想你應該specifiy的的LayoutParams所添加的視圖或使用addView只有 2參數

addView(VIEW_TYPE,index); 
+0

省略null LayoutParams就像一個魅力!謝謝! – Gerstmann