2014-07-04 80 views
1

我得到一個錯誤ViewStub空的異常膨脹

07-04 01:49:56.325: E/AndroidRuntime(9693): java.lang.NullPointerException 

同時嘗試做

sendMessageView = ((ViewStub) rootView 
      .findViewById(R.id.send_message_viewstub)).inflate(); 

這裏交易後膨脹ViewStub在片段是XML

<ViewStub 
     android:id="@+id/send_message_viewstub" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:inflatedId="@+id/panel_import" 
     android:layout="@layout/fragment_send_message" /> 
+0

請顯示您的所有代碼;整個logcat和所有的源代碼。 –

回答

0

如果你總是在這個ViewStub中將會膨脹相同的佈局,那麼最好使用include標記。

<include layout="@layout/fragment_send_message /> 

include在運行時用指定的佈局取代了自身,並允許您的佈局既模塊化和可讀性。

0

同意Shawnic,您向我們展示的錯誤行並沒有多大意義。我可以告訴你,使用片段比活動有點棘手。

但這樣說,我不認爲你可以使用片段作爲包括的佈局? 在問題的背景下,碎片究竟在哪裏或哪裏?

片段有它們自己的類文件,負責膨脹佈局以用作片段。

我也很關心這部分您發佈的評論:

sendMessageView = ((ViewStub) rootView 
     .findViewById(R.id.send_message_viewstub)).inflate(); 

現在我有這方面的經驗,但它已經有一段時間,我不知道,如果你的代碼,這部分是正確的?

這就是Android如何建議你寫的:

ViewStub stub = (ViewStub) findViewById(R.id.stub); 
View inflated = stub.inflate(); 

在你的代碼,什麼樣的對象是

sendMessageView 

您可能需要更改您的代碼這個第一隻是爲了確保,我們並不確切知道Android爲什麼會這樣做,但我們可能應該這樣做。