Optionsmenu

  • Antworten:4
  • Bentwortet
Patrick Lehmann
  • Forum-Beiträge: 3

23.08.2010, 21:21:53 via Website

Hi.

habe ein Problem bzgl des Optionsmenü.

Mein Programm besteht aus mehreren TabViews. In meinem Optionsmenü ist ein Menüpunkt "Login" erhalten. Hat man sich erfolgreich eingeloggt, werden zusätzliche Tabs und zusätzliche Optionsmenü-Punkte hinzugefügt bzw verändert (etwa "Login" zu "Logout").

Der LogIn funktioniert, es werden auch die neuen Tabs richtig angezeigt, nur das Optionsmenü hat ein Problem:
ich sehe die neuen/veränderten Optionsmenü-Punkte nur in dem Tab, in dem ich mich eingeloggt habe.
Die anderen Tabs zeigen das Optionsmenü an, das nur nicht eingeloggte Nutzer sehen sollen.

Das Optionsmenü (also onCreateOptions und onOptionsItemSelected) sind in der mainapp enthalten und alle TabViews rufen diese auch eigentlich auf.
In der mainApp gibt es eine Variable "public Menu myMenu" die das Menü enthält. Nach erfolgreichem Login wird dieses etwa mit "myMenu.getItem(0).setTilte("Logout"); myMenu.getItem(1).setVisible(true)" verändert/erweitert. (die Menüpunkte für eingeloggte User sind in der menu.xml mit versteckter Sichtbarkeit enthalten und müssen für eingeloggte dann sichtbar geschaltet werden).

Wisst ihr vielleicht wo der Fehler liegt ?
(wollte euch jetz mal den Quellcode ersparen und hab hoffentlich das relevante erzählt)

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

23.08.2010, 21:37:38 via Website

Hallo Patrick,

ich vermute fast mal das DU nicht darum herum kommen wirst die relevanten Code-Passagen mal herzuzeigen.

So wenig wie möglich, so viel wie nötig....

lg Voss

Antworten
Patrick Lehmann
  • Forum-Beiträge: 3

23.08.2010, 22:08:19 via Website

edit...

— geändert am 24.08.2010, 15:53:17

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

23.08.2010, 23:13:16 via Website

Ok ok ...

ich vermute mal, dass login.class eine komplett eigene Activity ist.

Hast Du in Deiner Activity den Livecycle entsprechend berücksichtigt? onPause, onResume ...

Lies mal hier nach: Activity Livecycle

Wenn Du im onPause nicht Deine Variablen und Objekte sicherst sind sie dann verschwunden wenn Du wieder in die Activity zurückkehrst.
Du initialisierst sie ja im onCreate und nicht im onStart. Und genau dort erfolgt später der wiedereintritt in Deine Activity.

Lies mal den oben verlinkten Artikel .. dann wirds klarer, besonders nach dem Bild was da mit drinnen ist.

Wenn nicht, frag hier einfach noch mal nach .. es ist meistens irgendjemand online der Dir weiterhelfen kann.

lg Voss

Patrick Lehmann

Antworten
Patrick Lehmann
  • Forum-Beiträge: 3

24.08.2010, 02:06:45 via Website

hm. das klingt logisch, was du sagst :-)

erstmal danke für die schnellen Antworten.



edit:
habe das Problem lösen können ohne auf die Lifecycle-Methoden einzugehen.
Habe nun nach dem Login einfach nur zusätzlich noch eine Variable auf true gesetzt.
Diese wird bei jedem Aufruf von onCreateOptions abgefragt und dort wird das Optionsmenü vor der Anzeige dann noch angepasst.
Funktioniert in allen Tabs/Activities nun

— geändert am 24.08.2010, 15:55:50

Antworten