6

:) 我的 RadioGroup 的 RadioButtons 是从一个 ArrayList(它位于我的主要活动中)动态创建的,其中充满了如下链接:

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

然后我有一个名为“链接”的新类,它从我的主要活动中的菜单按钮调用,它设置了一个很好的布局,每个链接都有一个单选按钮(在滚动视图中)和一个“开始!” 页面底部的按钮(相对布局)。

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

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

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

4

3 回答 3

12

You can remove your radio buttons which were dynamically created using like this:

RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroupnew1);
rg.clearCheck();
rg.removeAllViews();
于 2013-07-24T14:56:56.457 回答
0

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

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

于 2010-11-27T21:47:22.110 回答
0

I got it, I guess the place in memory left the ArrayList there even after onDestroy() was called. All I did to fix this was call ".clear();" on the ListArray right after instantiating it in the main Activity of my Android application. This way each time the application is opened it [the arraylist] gets instantiated then cleared. Works like a charm :)

于 2010-11-27T21:51:53.843 回答