将ListView添加到LinearLayout

发布于 2024-12-10 17:10:46 字数 499 浏览 0 评论 0原文

我定义了一个XML布局。在运行时,我从xml布局文件中获取LinearLayout,我在运行时创建一个ListView。在ListView中运行时,我添加了许多RelativeLayout,如图5所示,这个RelativeLayout包含不同的其他UI组件,例如TextView、ImageView 等工作正常,但是当用户按下后退按钮时,我使用 bean 中的 setter 方法保存 ListView 对象,当用户再次进入活动恢复时,我从 getter 方法获取 ListView 并将其再次添加到我的 LinearLayout 中我在上面添加,但它给了我异常 java.lang.IllegalStateException: 指定的子项已经有父项。您必须首先在子级的父级上调用removeView()。在再次获取后添加ListView之前,我也尝试了这个MyLinearLayout.removeView(myListView)….但问题相同。 。任何建议...在此处输入图像描述

I define an XML Layout .At run time I am get LinearLayout from xml Layout file ,I am creating a ListView at run.At run time in ListView I am adding many RelativeLayouts as shown in picture # 5 this RelativeLayout contains different other UI component like TextView,ImageView etc its working fine but when user press back button I am saving ListView object using setter method in beans,When user comes on activity Resume again I am getting ListView from getter method and adding it again to my LinearLayout as I add above but its giving me exception as java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.Before adding ListView after getting again I also try this MyLinearLayout.removeView(myListView)….but problem same . . Any suggestion…enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悍妇囚夫 2024-12-17 17:10:46

据我现在了解,您的问题是,当您恢复活动时,您会从代码构建一个新的 ListView,而应用程序已经找到此 ListView。因此,您会收到一个错误,您首先需要将此 ListView 清空,然后用所有数据重新填充它。

最好的方法是:

  • 在 XML 布局中添加一个 ListView
  • 使用“findViewById”在 Activity 类中获取此视图 在您
  • 的 onresume() 方法中,使用自行创建的适配器和 ArrayList 或 Collection 中的数据填充此列表
  • 当您键入时要发送的新消息,将其保存到此 ArrayList 或 Collection 并恢复您的活动或只是重新填充您的 ListView。

但最好发布一些代码,以便我们可以更好地帮助您。

亲切的问候,祝你好运!

As I understand now, your problem is that when you resume the activity you build a new ListView from code while the app find already this ListView. So, you get an error that you first need the make this ListView empty and then repopulate it with all your data.

The best way to do this:

  • Add a ListView in your XML layout
  • Get this view in your Activity class with 'findViewById'
  • In your on resume() method populate this list with a self created Adapter and data from an ArrayList or Collection
  • When you type a new message to send, save it to this ArrayList or Collection and resume your activity or just repopulate your ListView.

But it's maybe better to post some code, so we can better help you.

Kind regards and good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文