从Android中的radiogroup中删除动态创建的单选按钮

时间:2010-11-27 21:22:17

标签: android dynamic radio-button radio-group persist

:)我的RadioGroup的RadioButtons从一个ArrayList(位于我的主要活动中)动态创建,其中包含如下所示的链接:

ArrayList = {“hxxp://helloworld.com”,“hxxp://helloworld2.net”,...,“hxxp://whatever.com”}

然后我有一个名为“links”的新类,它从我的主要活动中的菜单按钮调用,它设置了一个漂亮的布局,每个链接都有一个radiobubtton(在一个scrollview中)和一个“go!”页面底部的按钮(相对布局)。

这一切都很有效,除了一件事。如果您使用后退按钮退出应用程序,然后通过单击Android菜单中的图标返回应用程序,您将进入主活动,然后单击菜单中的“链接”按钮,每次都会加倍。 ???像这样:

链接0
链接1
链接2
链接0(再次)
链接1(再次)
链接2(再次)

每次您从离开时返回到“链接”活动时,这会将链接附加到底部。有没有什么方法可以调用一个方法来清除链接活动中最后一个会话生成的所有单选按钮,然后再将它们放入RadioGroup?我尝试将onPause()更改为finish();我尝试使用RadioGroup.destroyDrawingCache();释放缓存。似乎没有任何操作。

3 个答案:

答案 0 :(得分:10)

您可以删除使用以下内容动态创建的单选按钮:

RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroupnew1);
rg.clearCheck();
rg.removeAllViews();

答案 1 :(得分:0)

而不是这个'删除所有'的方法(这肯定是可能的)我会尝试不同的东西 - 在代码中放置一个断点,首先填充您的单选按钮并按下后退按钮,然后再返回应用程序,然后再次回来,再次回到应用程序等等。

如果每次切换回应用程序时都会遇到断点,那么就有问题了。例如,通过将代码从它所在的位置移动到OnCreate来修复它,因此它仅在创建活动时调用一次。如果这不可行,那么使用一些类变量,如'boolean mRadioButtonsPopulated',它会在单选按钮填充代码之前检查,并在(第一个)单选按钮填充发生后设置为true。

答案 2 :(得分:0)

我明白了,我想即使在调用onDestroy()之后,内存中的位置也会留下ArrayList。我所做的就是调用“.clear();”在我的Android应用程序的主Activity中实例化之后立即在ListArray上。这种方式每次打开应用程序时,[arraylist]都会被实例化然后清除。像魅力一样工作:)