# trotz Android 4.1 erscheint option menu statt action bar



## Gast2 (30. Nov 2012)

Hallo,

folgendes finde ich bei google zum Thema Menü
(Menus | Android Developers):
If you've developed your application for Android 2.3.x and lower, the system calls onCreateOptionsMenu() to create the options menu when the user opens the menu for the first time. If you've developed for Android 3.0 and higher, the system calls onCreateOptionsMenu() when starting the activity, in order to show items to the action bar.​
Ich habe meine Testapp sowohl auf ein Gerät mit Android 2.3, als auch auf einem andren Gerät mit Android 4.1 zu laufen. Auf beiden Geräten wird das Menü klassisch als option menu gezeigt. Sollte es beim neueren Android automatisch als action bar erscheinen?
Hat jemand Erfahrungen damit und kann mir sagen, warum es nicht als action bar erscheint und was zu tun ist, damit es als action bar erscheint?

Herzliche Grüße!
Frank


----------



## mjdv (30. Nov 2012)

Du musst in der AndroidManifest Android 4.x als Target angeben damit das automatisch gemacht wird.


----------



## Gast2 (3. Dez 2012)

Das habe ich bereits, sieht so aus:
[XML]<uses-sdk 
android:minSdkVersion="8" 
android:targetSdkVersion="16"
/>[/XML]

Aber wie gesagt, im Gerät mit einer 4er-Version wird es wie bei der 2er angezeigt.


----------



## Michael... (5. Dez 2012)

Das kann man für jedes Item im Menu-xml definieren. z.B:

```
android:showAsAction="ifRoom"
```


----------



## Gast2 (5. Dez 2012)

Michael... hat gesagt.:


> Das kann man für jedes Item im Menu-xml definieren.[/code]



Das verstehe ich nicht. Mein Menü hat doch keine xml.
Also ich kenne das nicht, ein Menü mit xml.

Ich habe public void fillMenu(Menu menu) {...}
und public void onMenuItemSelect(MenuItem item) {...}

damit erzeuge ich das Menü und damit werte ich die Auswahl aus.

Bitte kannst Du mir das genauer erläutern mit dem xml für's Menü?!


----------



## Michael... (5. Dez 2012)

Definierst Du Deine Menüs aus einem bestimmten Grund im Code? Android ist ja dafür ausgelegt die GUIs als xml zu definieren. Genauso wie Du das UI für Deine Activity als xml definierst kannst Du auch Dein Menü als xml definieren und per MenuInflater laden.

Vermutlich kannst Du die Menüs auch per Code in der ActionBar anzeigen lassen. Allerdings läuft dann die App - zumindest so - nicht unter den 2er Versionen. Bei der Definition per xml ignoriert die 2er einfach das Attribut und die App zeigt das Menü unter der 4er in der ActionBar und unter der 2er als klassischen Optionsmenü an.
Hiermal ein Bsp. für ein Menu mit drei Optionen:
[XML]<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
	<item
		android:id="@+id/opt_save"
		android:icon="@drawable/ic_menu_save"
		android:showAsAction="always"
		android:title="@string/opt_save">
	</item>
	<item
		android:id="@+id/opt_delete"
		android:icon="@drawable/ic_menu_delete"
		android:showAsAction="ifRoom"
		android:title="@string/opt_delete">
	</item>
	<item
		android:id="@+id/opt_cancel"
		android:icon="@drawable/ic_menu_revert"
		android:showAsAction="ifRoom"
		android:title="@string/opt_cancel">
	</item>
</menu>[/XML]


----------

