【问题标题】:How to add views in an android application programmatically如何以编程方式在 android 应用程序中添加视图
【发布时间】:2011-09-12 16:06:12
【问题描述】:

我一直在尝试在我的 android 应用程序中添加一个视图,但它一直抛出异常。 我要添加的视图是一个线性布局,其中包含一个图像视图和一个带有 3 个文本视图的嵌套线性布局。我要添加的视图是一个带有复选框、2 个文本视图和一个带有按钮和一个 editText 的嵌套 relativelayout 的 LinearLayout。

它们位于单独的 xml 文件中,并且我夸大了要添加的视图。但是,当我调用 addView() 时,它会引发以下异常:

06-10 09:24:33.094: 错误/AndroidRuntime(5743): java.lang.RuntimeException: 无法恢复活动 {com.projects.twitterOAuth/com.projects.twitterOAuth.twitterOAuth}: java.lang.IllegalStateException :指定的孩子已经有一个父母。您必须先在孩子的父母上调用 removeView()。

【问题讨论】:

    标签: android view


    【解决方案1】:

    当你膨胀你的子视图时,确保parent参数(最后一个)设置为null。

    【讨论】:

    • 感谢您的回复。我已经将它设置为 null: LinearLayout fpost = (LinearLayout)inflater.inflate(R.layout.fpost, null, true);我尝试了使用和不使用最后一个参数,但由于某种原因,当我在调试期间检查它时,当我调用 fpost.getParent() 时,它仍然有一个 LinearLayout 设置为其父级。
    • 我喜欢使用View.inflate() 方法。像View.inflate(this, R.layout.fpost,null) 这样的东西。但在你的情况下,给它最后一个参数false 不要附加到根目录。
    猜你喜欢
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多