Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将ListView添加到LinearLayout_Android_Android Layout_Android Widget - Fatal编程技术网

Android 将ListView添加到LinearLayout

Android 将ListView添加到LinearLayout,android,android-layout,android-widget,Android,Android Layout,Android Widget,我定义了一个XML布局。在运行时,我从XML布局文件获取LinearLayout,我在运行时创建一个ListView。在ListView中,我在运行时添加了许多RelativeLayout,如图5所示。此RelativeLayout包含其他不同的UI组件,如TextView,ImageView等工作正常,但当用户按下back按钮时,我正在使用beans中的setter方法保存ListView对象,当用户再次启动“活动恢复”时,我将从getter方法获取ListView,并将其再次添加到我的Lin

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

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

最好的方法是:

在XML布局中添加ListView 使用“findViewById”在活动类中获取此视图 在on resume方法中,使用自创建的适配器和ArrayList或集合中的数据填充此列表 键入要发送的新邮件时,请将其保存到此ArrayList或Collection中,然后继续活动或重新填充ListView。 但是发布一些代码可能更好,这样我们可以更好地帮助您


亲切的问候,祝你好运

这听起来非常错误。您试图保存一个列表,而不是其中的数据。这可能容易出错,并可能泄漏内存。我看不出你的问题中有什么原因不能存储数据…@Knickedi我同意你的内存泄漏问题。现在有一件事我无法直接保存ArrayList以存储在SQLite中。因为它的ArrayList是数据结构…那么您建议如何处理此列表?感谢存储数组数据在大多数情况下是通过多个表和一个外键关系解决的,因为有足够的材料。如果您存储的数组与其他存储元素没有任何关系,并且您确实希望存储数组,因为它是唯一的数组,那么我会尝试使用文本列和存储时要字符串的项目之间的分隔符,读取时从字符串解析。