удалить динамически созданные радиокнопки из радиогруппы в Android - PullRequest
5 голосов
/ 28 ноября 2010

:) RadioButtons моей RadioGroup создаются динамически из ArrayList (который находится в моей основной деятельности), наполненного ссылками, такими как:

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

тогда у меня есть новый класс, называемый "ссылки", который вызывается с помощью кнопки меню в моей основной деятельности, которая устанавливает хороший макет с радиопереключателем на ссылку (в виде прокрутки) и "go!" кнопка внизу страницы (относительное расположение).

Все это прекрасно работает, кроме одной вещи. Если вы выходите из приложения с помощью кнопки «Назад» и возвращаетесь в приложение, нажимая на значок в меню Android, вы переходите к основному виду деятельности, затем нажимаете кнопку «ссылки» в меню, и они удваиваются каждый раз. ??? вот так:

ссылка 0
ссылка 1
ссылка 2
ссылка 0 (снова)
ссылка 1 (снова)
ссылка 2 (снова)

Это добавляет ссылки внизу каждый раз, когда вы возвращаетесь к активности "ссылки" после ухода. Можно ли как-нибудь вызвать метод, чтобы очистить все переключатели, сгенерированные из последнего сеанса в активности ссылок, прежде чем помещать их в RadioGroup? Я попытался изменить onPause() на finish(); Я попытался освободить кэш с помощью RadioGroup.destroyDrawingCache();, похоже, ничего не получается.

Ответы [ 3 ]

10 голосов
/ 24 июля 2013

Вы можете удалить свои радио-кнопки, которые были динамически созданы, используя это:

RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroupnew1);
rg.clearCheck();
rg.removeAllViews();
0 голосов
/ 28 ноября 2010

Я понял, наверное, место в памяти оставило ArrayList там даже после вызова onDestroy ().Все, что я сделал, чтобы это исправить, это вызвал ".clear ();"на ListArray сразу после его создания в основной активности моего приложения Android.Таким образом, каждый раз, когда приложение открывается, оно [создается], а затем очищается.Работает как шарм:)

0 голосов
/ 28 ноября 2010

Вместо этого подхода «удалить все» (что, безусловно, возможно), я бы попробовал что-то другое - поместите точку останова в коде, который сначала заполняет ваши радиокнопки, и нажмите кнопку «Назад», затем вернитесь в приложение, затем снова назад, снова обратно в приложение и т. д.

Если точка останова срабатывает каждый раз, когда вы переключаетесь обратно в приложение, то это ваша проблема. Исправьте это, переместив этот код, например, из OnCreate, чтобы он вызывался только один раз во время создания Activity. Если это невозможно, то используйте переменную класса, например 'boolean mRadioButtonsPopulated', которая проверяется непосредственно перед кодом заполнения переключателей и устанавливается в значение true после (первого) заполнения переключателей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...