[gelöst] onCreateOptionsMenu(Menu menu) wird nicht aufgerufen

znieh99

znieh99

Fortgeschrittenes Mitglied
12
Hallo Forum,
ich mache meine ersten Schritte mit Android und verwende dazu "Android Studio" und das Buch "Android 4.4" auf einem Windows 10 Rechner.
Dabei wird für eine Activity auch ein Menü erstellt, welches aber im Emulator nicht angezeigt wird und die Funktion
"onCreateOptionsMenu(Menu menu)" auch nicht aufgerufen wird - habe einen Haltepunkt gesetzt der nicht zum tragen kommt. Ansonsten werden alle Views angezeigt.
Hier der Code:
package com.example.heinz.amando;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
//import de.visionera.androidbuch.amandolistings.R;
//import de.visionera.androidbuch.amandolistings.receiver.SmsBroadcastReceiver;
//import de.visionera.androidbuch.amandolistings.services.EmpfangePositionService;

public class Startseite extends Activity {

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.startseite);
setTitle(R.string.startseite_titel);

// registerForContextMenu(findViewById(R.id.sf_starte_geokontakte));
}

@override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar
// if it is present.
getMenuInflater().inflate(R.menu.hauptmenue, menu);
return super.onCreateOptionsMenu(menu);
}

@override
public boolean onPrepareOptionsMenu(Menu menu) {
final MenuItem optHilfe =
(MenuItem)menu.findItem(R.id.opt_hilfe);
// so könnte man einzelne Menüeinträge einer Activity
// abschalten:
// optHilfe.setEnabled(false);
return super.onPrepareOptionsMenu(menu);
}

@override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.opt_einstellungenBearbeiten:
// TODO
return true;
case R.id.opt_hilfe:
// TODO
return true;
case R.id.opt_amandoBeenden:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
<menu xmlns:android=
"http://schemas.android.com/apk/res/android">
<item
android:id="@+id/opt_einstellungenBearbeiten"
android:title="@string/men_einstellungen_bearbeiten"
android:icon="@android:drawable/ic_menu_preferences"
/>
<item
android:id="@+id/opt_hilfe"
android:title="@string/men_hilfe_anzeigen"
android:icon="@android:drawable/ic_menu_help"
/>
<item
android:id="@+id/opt_amandoBeenden"
android:title="@string/men_amando_beenden"
android:icon= "@android:drawable/ic_menu_close_clear_cancel"
/>
</menu>
Ich hoffe es kann mir jemand helfen,
lG heinz
 
Du musst das OptionsMenu auch mit

setHasOptionsMenu(true) ;

Aktivieren damit es angezeigt wird.
 
Hallo derjens,
danke für die Antwort.
Ich nehme an der Methodenaufruf kommt in die "onCreate" Funktion der Activity Startseite? Setz ich es dort hin, bekomme ich ein Tiptool "Cannot resolve method setHasOptionsMenu(boolean) ..". Was fehlt hier noch?
FG heinz
 
Ich habe das Problem beim "Theme" für die app gefunden:
Das parent Theme für die app war auf "Light" gesetzt (siehe Styles). Ich habe es nun auf "Holo.Light" gesetzt, und siehe da das Menü wird angezeigt.
<resources>
<style name="AmandoTheme"
<!-- parent="android:Theme.Light"> --------> damit wird kein Menü angezeigt
parent="android:Theme.Holo.Light"> <!-- damit wird das Menü angezeigt

<item name="android:windowBackground">
@color/hintergrund
</item>
<item name="android:textViewStyle">
@Style/TextStyleNormal
</item>
<item name="android:listViewStyle">
@Style/ListView
</item>
<item name="android:buttonStyle">
@Style/Schaltflaeche
</item>
</style>
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
225
swa00
swa00
SaniMatthias
Antworten
19
Aufrufe
959
swa00
swa00
O
Antworten
15
Aufrufe
2.970
ORHUX
O
Zurück
Oben Unten