简体   繁体   English

如何将使用XML布局的视图动态添加到ContentView?

[英]How can I dynamically add Views that use XML Layouts to the ContentView?

Within my main Activity, I create a FrameLayout with child Views and set it as the ContentView. 在我的主活动中,创建带有子视图的FrameLayout并将其设置为ContentView。 Now, staying within the same Activity, after onCreate() has executed fully, I need to be able to add and remove child Views from the FrameLayout, dynamically. 现在,在完全执行onCreate()之后,留在同一个Activity中,我需要能够动态地从FrameLayout中添加和删除子视图。 I achieved this by using a Handler to pause the main Thread and then add or removed the child Views as needed. 我通过使用Handler暂停主线程,然后根据需要添加或删除子视图来实现这一点。

This all works great when I am dealing with Views that I programmatically create, but when I attempt to do the same with a View that uses a XML layout, I get a Null Pointer Exception from the ViewGroup that I am trying to add to the FrameLayout. 当我处理以编程方式创建的View时,所有这些都很好用,但是当我尝试对使用XML布局的View进行同样的处理时,我从试图添加到FrameLayout的ViewGroup中获得了空指针异常。 。

Are there specific steps I can use to achieve this without the use of Fragments? 在不使用片段的情况下,是否可以使用特定的步骤来实现此目的?

I can elaborate more if some don't understand what I am asking. 如果有些人不明白我的要求,我可以详细说明。 I could provide code chunks if it would help but I think most will get the gist of what I am doing from my short explanation. 如果可以帮助的话,我可以提供代码块,但我认为大多数人都会从我的简短解释中得到我正在做的要旨。 I am just looking for someone to point me into the right direction. 我只是在寻找可以指引我正确方向的人。

Here is the LogCat chunk for the exception taht was thrown: 这是引发了异常的LogCat块:

11-15 13:40:42.977: E/AndroidRuntime(14956): FATAL EXCEPTION: main
11-15 13:40:42.977: E/AndroidRuntime(14956): java.lang.NullPointerException
11-15 13:40:42.977: E/AndroidRuntime(14956):    at android.view.ViewGroup.addView(ViewGroup.java:1821)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at android.view.ViewGroup.addView(ViewGroup.java:1808)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at com.beastcodes.framework.impl.AndroidGame.addScreenFragment(AndroidGame.java:207)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at com.beastcodes.framework.impl.AndroidGame.addAllScreenFragments(AndroidGame.java:213)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at com.beastcodes.framework.impl.AndroidGame.access$2(AndroidGame.java:211)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at com.beastcodes.framework.impl.AndroidGame$3.run(AndroidGame.java:61)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at android.os.Handler.handleCallback(Handler.java:587)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at android.os.Looper.loop(Looper.java:130)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at android.app.ActivityThread.main(ActivityThread.java:3691)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at java.lang.reflect.Method.invokeNative(Native Method)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at java.lang.reflect.Method.invoke(Method.java:507)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
11-15 13:40:42.977: E/AndroidRuntime(14956):    at dalvik.system.NativeStart.main(Native Method)

您必须先使用LayoutInflater从XML扩展视图,然后再将其添加到FrameLayout。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何动态将布局和视图添加到Android XML布局文件? - How can I dynamically add layouts and views to an Android XML layout file? 如何动态添加带有图像视图的多个线性布局? - How can I add multiple linear layouts with imageviews dynamically? 我可以动态保存图像并在布局中使用它吗? - Can I save a image dynamically and use it in layouts? 如何在相对布局或任何布局中动态添加视图 - How can I add Views dynamically in a Relative layout or in any Layout 如何将布局添加到viewpager - How can I add layouts to the viewpager 如何以编程方式更改这些视图布局? 我在 xml 文件中有视图,但后来想以编程方式更改它们的大小 - How to change these views layouts programmatically? I have the views in xml file, but later want to change their size programmatically 如何向ViewFlipper添加布局并更改视图的值 - How to add layouts to ViewFlipper and change views' values 如何将视图添加到主活动中的多个布局 - How to add views to multiple layouts in the main activity 如何使用布局XML文件中定义的视图作为模板来以编程方式创建视图 - How can i make use of views defined in layout XML file as template to create views programmatic way 如何动态地将视图添加到已在xml布局中声明的RelativeLayout? - How to add views dynamically to a RelativeLayout already declared in the xml layout?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM