P
PHANTOMIASER
Neues Mitglied
- 0
Hallo zusammen!
Ich habe eine App, welche aus mehreren Activities besteht. Da bei jeder Activity das gleiche Optionenmenü gezeigt werden soll, habe ich eine Activity (MyMenuActivity) angelegt, die nur die beiden Methoden onCreateOptionsMenu() und onOptionsItemSelected() besitzt. Jede meiner Activities erweitere ich nun um MyMenuActivity.
Klickt der Benutzer auf den Eintrag "Testeintrag" im Optionenmenü, so wird dies ausgeführt:
Es wird also eine neue TestActivity "aufgerufen".
Das Problem ist jetzt aber, dass die neue TestActivity wieder das Optionenmenü mit dem item "Testeintrag" besitzt und der Benutzer wieder draufdrücken kann und wieder eine TestActivity neu aufgerufen wird. Das kann man theoretisch unendlich tun.
Was ich aber gerne hätte: Wie kann ich aus einer Activity heraus dem Menü "sagen", dass wenn ein Eintrag geklickt wird, dass nur dann ein startActivity() ausgeführt werden soll, wenn der Benutzer nicht schon in diesem "Bereich" ist?
Noch besser wäre wenn ich dem Menü mitteilen kann, welches item gerade "aktiv" ist, so dass schon optisch dem Benutzer klar ist, dass er zwar klicken kann, es aber nichts bringen wird?
Die Amazon-App hat das schön gelöst: Klicke ich im Optionen-Menü auf den Eintrag "Angebote", so wird die Angebotsübersichtseite aufgerufen. Klicke ich wieder ins Menü, so sehe ich, dass der Eintrag "Angebote" orangefarben hervorgehoben ist. Klicke ich nun erneut auf "Angebote", so schließt das Optionenmenü, aber ich bleibe auf der gleichen Seite. Wähle ich hingegen ein Angebot aus, so komme ich auf die Angebotsdetailseite. Klicke ich nun im Optionenmenü auf den ausgewählten orangefarbenen Angebote-Eintrag, so komme ich wieder zurück zur Angebotsübersichtseite.
Wie kann ich so etwas erreichen? Jemand eine Idee?
Gruß PHANTOMIASER
Ich habe eine App, welche aus mehreren Activities besteht. Da bei jeder Activity das gleiche Optionenmenü gezeigt werden soll, habe ich eine Activity (MyMenuActivity) angelegt, die nur die beiden Methoden onCreateOptionsMenu() und onOptionsItemSelected() besitzt. Jede meiner Activities erweitere ich nun um MyMenuActivity.
Klickt der Benutzer auf den Eintrag "Testeintrag" im Optionenmenü, so wird dies ausgeführt:
Code:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.testpage: {
Intent testpage = new Intent(this, TestActivity.class);
startActivity(testpage);
return true;
}
...
}
}
Das Problem ist jetzt aber, dass die neue TestActivity wieder das Optionenmenü mit dem item "Testeintrag" besitzt und der Benutzer wieder draufdrücken kann und wieder eine TestActivity neu aufgerufen wird. Das kann man theoretisch unendlich tun.
Was ich aber gerne hätte: Wie kann ich aus einer Activity heraus dem Menü "sagen", dass wenn ein Eintrag geklickt wird, dass nur dann ein startActivity() ausgeführt werden soll, wenn der Benutzer nicht schon in diesem "Bereich" ist?
Noch besser wäre wenn ich dem Menü mitteilen kann, welches item gerade "aktiv" ist, so dass schon optisch dem Benutzer klar ist, dass er zwar klicken kann, es aber nichts bringen wird?
Die Amazon-App hat das schön gelöst: Klicke ich im Optionen-Menü auf den Eintrag "Angebote", so wird die Angebotsübersichtseite aufgerufen. Klicke ich wieder ins Menü, so sehe ich, dass der Eintrag "Angebote" orangefarben hervorgehoben ist. Klicke ich nun erneut auf "Angebote", so schließt das Optionenmenü, aber ich bleibe auf der gleichen Seite. Wähle ich hingegen ein Angebot aus, so komme ich auf die Angebotsdetailseite. Klicke ich nun im Optionenmenü auf den ausgewählten orangefarbenen Angebote-Eintrag, so komme ich wieder zurück zur Angebotsübersichtseite.
Wie kann ich so etwas erreichen? Jemand eine Idee?
Gruß PHANTOMIASER