"onOptionsItemSelected" mehrfach benutzen

  • Antworten:5
  • Bentwortet
Gelöschter Account
  • Forum-Beiträge: 4

06.04.2013, 10:27:29 via Website

Hallo zusammen,

Ich versuche mich seit etwa einer Woche auch mit der Android-App entwicklung mittels Eclipse und bin noch eher ein Grünschnabel :grin:.
Nun, ich hoffe ihr könnt mir bei diesem Problem helfen.
Ich möchte über mehrere Menüeinträge verschiedene Activities aufrufen. Über den Button "About" öffnen er bereits die gleichnamige Activity, aber bei einem weiteren Eintrag, der eine Andere Activity über einen anderen Button anzeigen soll, meint Eclipse ich soll den weiteren Eintrag umbenennen.

Wie kann man onOptionsItemSelected mehrfach benutzen? Muss man eine neue Class erstellen?
Im Vorraus schonmal danke für eure Hilfe :D

Hier ist der erste Code:

1@Override
2public boolean onOptionsItemSelected(MenuItem item) {
3 switch(item.getItemId()) {
4 case R.id.about:
5 Intent intent = new Intent(this, AboutActivity.class);
6 this.startActivity(intent);
7 break;
8 default:
9 return super.onOptionsItemSelected(item);
10 }
11
12 return true;
13 }

und der zweite Code:
1public boolean onOptionsItemSelected(MenuItem item) {
2 switch(item.getItemId()) {
3 case R.id.otherapps:
4 Intent intent = new Intent(this, OtherApps.class);
5 this.startActivity(intent);
6 break;
7 default:
8 return super.onOptionsItemSelected(item);
9 }
10
11 return true;
12 }

MFG
YouDeveloper

Antworten
impjor
  • Forum-Beiträge: 1.793

06.04.2013, 10:56:12 via App

Du überschreibst zweimal die selbe Methode, woher soll Android wissen, welche von beiden er ausführen soll?
Lösung: Mach nur eine Methode, in der du abfragst, welcher Eintrag gewählt wurde. Den ersten Ansatz hast du mit deinem switch-case schon. Google mal nach Java switch und da wird das erklärt.
Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

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

06.04.2013, 14:06:38 via Website

Erstmal Danke für die Antwort, ich habe eine Seite gefunden, auf der es um einen Switch geht, kann jedoch mit den Codes nicht so richtg etwas anfangen.

Hier die Seite: stackoverflow.com/questions/1504160/android-use-a-switch-statement-with-setonclicklistener-onclick-for-more-than-1

Währe sehr nett, wenn mir jemand sagen kann, welche der dort angegebenen Möglichkeiten funktionieren könnte, und wie ich "onOptionsItemSelected" mehrfach (ode eine andere Methode) dort einbauen kann.

MFG
YouDeveloper

— geändert am 06.04.2013, 14:06:49

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.04.2013, 14:17:14 via Website

Mach einfach beides in einer Funktion:
1switch(item.getItemId()) {
2 case R.id.about:
3 Intent intent = new Intent(this, AboutActivity.class);
4 this.startActivity(intent);
5 break;
6case R.id.other:
7//Start Intent
8break;
9 default:
10 return super.onOptionsItemSelected(item);
11 }

LG Pascal //It's not a bug, it's a feature. :) ;)

Gelöschter Account

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

06.04.2013, 15:02:44 via Website

Pascal P.
Mach einfach beides in einer Funktion:
1switch(item.getItemId()) {
2 case R.id.about:
3 Intent intent = new Intent(this, AboutActivity.class);
4 this.startActivity(intent);
5 break;
6case R.id.other:
7//Start Intent
8break;
9 default:
10 return super.onOptionsItemSelected(item);
11 }

Vielen Vielen Vielen Dank :lol:
Hat super funktioniert. :grin:

Gruß,
YouDeveloper

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.04.2013, 17:37:33 via Website

Immer wieder gern :lol:

— geändert am 06.04.2013, 17:37:58

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten