我收到错误
07-04 01:49:56.325: E/AndroidRuntime(9693): java.lang.NullPointerException
在完成交易后尝试在Fragment中膨胀ViewStub
sendMessageView = ((ViewStub) rootView
.findViewById(R.id.send_message_viewstub)).inflate();
这是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 :(得分:-1)
如果您始终要在此ViewStub
中使用相同的布局,您最好使用include
代码投放。
<include layout="@layout/fragment_send_message />
include
在运行时替换为指定的布局,并允许您的布局既模块化又可读。
答案 1 :(得分:-1)
同意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建议我们这样做,但我们可能应该这样做。