Frage

:) Mein Radiogroup des Radiobuttons dynamisch aus einer Arraylist erstellt bekommen (die wohnt in meiner Haupttätigkeit) voller Links wie so:

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

Dann habe ich eine neue Klasse namens „Links“, die aus einer Menü-Taste in meiner Haupttätigkeit aufgerufen werden, die ein schönes Layout mit einem radiobubtton pro Verbindung setzt (in einem Scrollview) und einen „go!“ Taste auf der Unterseite der Seite (relatives Layout).

Das funktioniert alles toll, bis auf eine Sache. Wenn Sie die Anwendung mit der Zurück-Taste verlassen, und mit einem Klick auf das Symbol in der Android-Menü in die Anwendung gehen, gelangen Sie in die Haupttätigkeit und dann auf die „Links“ Taste im Menü und sie werden jedes Mal verdoppelt. ??? wie so:
Link 0
Link 1 | Link 2
Link 0 (wieder)
Link 1 (wieder)
Link 2 (wieder)

Dies hängt die Links unten jedes Mal, wenn Sie auf die „Links“ Aktivität wieder zu verlassen. Gibt es irgendeine Weise, die ich eine Methode aufrufen können alle Radiobuttons Form der letzten Sitzung in der Links-Aktivität erzeugt zu löschen, bevor sie in die Radiogroup setzen? Ich versuchte, meine onPause() Wechsel zu finish(); Ich habe versucht, den Cache mit RadioGroup.destroyDrawingCache(); nichts zu befreien scheint es zu tun.

War es hilfreich?

Lösung

Statt dieser ‚alles löschen‘ -Ansatz (was sicherlich möglich ist) würde ich etwas anderes versuchen - Ort, um einen Haltepunkt in dem Code, dass zunächst auffüllt Ihre Radiotasten und drücken Sie die Zurück-Taste, dann in die App zurück, dann wieder zurück, wieder zurück in die App etc.

Wenn der Haltepunkt jedes Mal, wenn Sie in die Anwendung wechseln wird getroffen, dann gibt es das Problem. Fix es durch diesen Code zu bewegen, von wo es zu OnCreate zum Beispiel, so wird er nur einmal an Aktivität Erstellungszeit genannt. Wenn das nicht machbar ist, dann einige Klassenvariable wie ‚boolean mRadioButtonsPopulated‘ benutzen, die kurz vor den Radio-Buttons Populationskodes geprüft werden, und wird auf true nach der (ersten) Radiobutton Bevölkerung gesetzt passiert ist.

Andere Tipps

Sie können Ihre Radio-Buttons entfernen, die wie folgt unter Verwendung von dynamisch erstellt wurden:

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

Ich habe es, ich denke, den Platz im Speicher verließ die Arraylist dort auch nach onDestroy () aufgerufen wurde. Alles, was ich tat, um dieses Problem beheben Anruf war „.clear ();“ auf dem Listarray direkt nach dem es in der Hauptaktivität meiner Android-Anwendung instanziieren. Auf diese Weise jedes Mal, wenn die Anwendung geöffnet wird es [das Arraylist] dann gelöscht instanziiert wird. Arbeiten wie ein Charme:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top