私のアプリでは、スピナーを持っています。ViewStub、スピナーのユーザーアイテムの選択に応じて、さまざまなレイアウトを膨張させ、スピナー。私のアプリが起動すると、ViewStubはスピナーからアイテムを初めて選択したときにレイアウトをうまく膨らませます。私はスピナーから新しいアイテムを選択しようとすると私のコードは、これまでViewStubは条件付きで複数のレイアウトを展開する際にエラーを発生させます
@Override
public void onItemSelected(AdapterView<?> pParent, View pView, int pPosition, long pId) {
if(pPosition == 1){
m_cStub.setLayoutResource(R.layout.text_form);
}else if(pPosition == 2){
m_cStub.setLayoutResource(R.layout.integer_form);
}
View inflated = m_cStub.inflate();
}
m_cStubはのonCreate(内部で作成されたViewStubオブジェクトである)のある
java.lang.IllegalStateException: ViewStub must have a non-null ViewGroup viewParent
の下に、それは例外を発生させますアクティビティ。
は、ここで私が間違っているつもりだところ、誰もが私に教えてくださいすることができ、私のメインのレイアウトXMLコード
<RelativeLayout..................>
<spinner......................./>
<ViewStub android:id="@+id/dynamic_form_layout"
android:inflatedId="@+id/dynamic_form_inflated_id"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
です。これを解決する他の解決策がある場合は、共有してください。
ありがとうございました。
これは、この 'pView = m_cStub.inflate();' – MAC
@ gtumca-MACを試してみてください。エラーはViewでないViewStubであるため動作しません。 –