Options-Menu 2.3 / 4.0

  • Antworten:13
  • Bentwortet
Stefan S.
  • Forum-Beiträge: 560

24.10.2012, 21:29:40 via Website

Hallo NG

Ich habe folgendes Problem:
meine App zeigt das Optionsmenu wenn ich auf Menü drücke. Nun gibt es aber bei neueren Devices kein Menü-Button mehr.
Wie kann ich die drei Punkte (Action Bar) trotzdem anzeigen? Meine Google-Suche hat mir hier nicht weitergeholfen.

Gruss
Stefan

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 06:59:16 via Website

Ja irgendwie schon.
z.B. Desire C. Dort gibt es nur zurück, Home, und die Schnelltaste ?!? :O

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

25.10.2012, 07:21:03 via App

Hast Du Deine App jemals auf einem 4.x Emulator getestet?

Die drei Punkte (Options Menu) erscheinen von alleine bei meinen eigenen Apps. Ich habe dazu nichts ändern müssen.

Du kannst optional showAsAction aufnehmen aber das ist AFAIK nicht notwendig.

— geändert am 25.10.2012, 07:23:03

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 08:01:09 via Website

Harald Wilhelm
Hast Du Deine App jemals auf einem 4.x Emulator getestet?

Die drei Punkte (Options Menu) erscheinen von alleine bei meinen eigenen Apps. Ich habe dazu nichts ändern müssen.

Ja das habe ich schon gemacht. Die Punkte erscheinen bei mir eben leider nicht.

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 08:25:53 via Website

Harald Wilhelm
Versuchs mal mit targetSdk 11 im Manifest.

Das hatte ich schon
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="11" />

So siehts für das OptionMenu aus
1@Override
2 public boolean onCreateOptionsMenu(Menu menu) {
3
4 new MenuInflater(getApplication())
5 .inflate(R.menu.navigationmenu, menu);
6
7 // menu.getItem(_nIndex).setVisible(false);
8 return(super.onCreateOptionsMenu(menu));
9 //return true;
10 }
11
12 @Override
13 public boolean onOptionsItemSelected(MenuItem item) {
14 return(applyMenuChoice(item) ||
15 super.onOptionsItemSelected(item));
16 }

und noch das xml dazu
1<?xml version="1.0" encoding="utf-8"?>
2<menu xmlns:android="http://schemas.android.com/apk/res/android">
3 <item android:id="@+id/iFavorite" android:orderInCategory="0" android:title="Favoriten" android:icon="@drawable/ic_menu_star"></item>
4 <item android:id="@+id/iTermine" android:orderInCategory="1" android:title="Termine" android:icon="@drawable/ic_menu_today"></item>
5 <item android:id="@+id/iMitteilungen" android:orderInCategory="2" android:title="Mitteilungen" android:icon="@drawable/ic_menu_send"></item>
6 <item android:id="@+id/iHelpDesk" android:orderInCategory="3" android:title="Helpdesk" android:icon="@drawable/ic_menu_help"></item>
7 <item android:id="@+id/iPersonen" android:orderInCategory="4" android:title="Personen" android:icon="@drawable/ic_menu_allfriends"></item>
8 <item android:id="@+id/iConfig" android:orderInCategory="5" android:title="Settings" android:icon="@drawable/ic_menu_manage"></item>
9 <item android:id="@+id/iRefresh" android:orderInCategory="6" android:title="Refresh" android:icon="@drawable/ic_menu_refresh"></item>
10</menu>

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 08:49:07 via Website

Wenn ich das showAsAction verwende kommt die Meldung, dass dieses Property nicht vorhanden ist :O

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 09:25:28 via Website

Harald Wilhelm
Bingo - geh mal auf die Projekt Properties --> Android. Was ist da eingestellt?

Android 2.3.3 , Plattform 2.3.3, API 10.

Es muss auch auf diesen Geräten laufen, darum habe ich API 10 gewählt.

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

25.10.2012, 10:18:19 via Website

Die Einstellung hat nichts damit zu tun auf welchen Geräten das mal laufen wird - das regelt nur das Manifest. Im Eclipse legst Du fest welche API für das Kompilieren etc. herangezogen werden soll.

In meinem Tankbuch verwende ich zum Beispiel:

* In Eclipse API11

* In Manifest minSdk=7, targetSdk=11

Ich verwende keine APIs jenseits von 7, meine App läuft auf Devices ab API7, erhält aber so entsprechenden Support.

Hier ist das beschrieben.

Das ist der entscheidene Satz.

The only exception is that if you set minSdkVersion to 10 or lower, set targetSdkVersion to 11, 12, or 13, and you do not use ActionBar, the system will add the legacy overflow button when running your app on a handset with Android 4.0 or higher.

— geändert am 25.10.2012, 10:20:14

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 10:45:04 via Website

Danke für diesen Hinweis

Ich habe nun im Project auf Android 11 gewechslet und das Manifest sieht so aus:
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="14" />

Es kommen aber immer noch keine Punkt.
Bin ich echt so schwer von Begriff?

Antworten
Stefan S.
  • Forum-Beiträge: 560

25.10.2012, 10:47:15 via Website

Scheisse. Vergiss mein Eintrag von vorhin.
Wer lesen kann ist im Vorteil...

The only exception is that if you set minSdkVersion to 10 or lower, set targetSdkVersion to 11, 12, or 13,

Da darf ich natürlich nicht auf 14 wechseln...

Vielen Dank für Dein Geduld.

Gruss
Stefan

Antworten