25 Stimmen

Android Aktionsleiste nicht sichtbar

Ich versuche, ein Optionsmenü in der Actionbar meiner vorhandenen App hinzuzufügen, aber es funktioniert nicht. Wenn ich ein neues Projekt mit der Standard-App "Hello World" erstelle, kann ich die Schaltfläche in der Actionbar sehen. Die Methode onCreateOptionMenu() scheint im Debugmodus mit Breakpoint nie erfasst zu werden, was ist falsch??

Ich arbeite mit API 14 in beiden Apps und das ist mein MainActivity-Code.

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class Principale extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ecran_d_acceuil);

}
public boolean onCreateOptionMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.principale, menu);
    return true;
}
 }

Mein menu.xml-Code

manifest.xml

6voto

Kianoush Punkte 91

Ich habe 3 Stunden damit verbracht und es schließlich behoben! Vergessen Sie nicht, android:theme="@style/AppTheme" aus Ihrem Manifest zu entfernen. Es führt zu einem Laufzeitfehler. So habe ich das Problem behoben. Ihre Aktivität sollte AppCompatActivity anstelle von Activity erweitern.

3voto

Shivam Dawar Punkte 403

Überprüfen Sie Ihre Manifestdatei in der Aktivitätserklärung, ob diese Zeile vorhanden ist, dann löschen Sie sie.

android:theme="@style/AppTheme.NoActionBar"

2voto

AndroidCB Punkte 230

Deine Hauptaktivität muss so aussehen:

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar actionBar = getActionBar();
    actionBar.hide();

    actionBar.show();
    actionBar.setSubtitle("subtitle");
    actionBar.setTitle("title"); 

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Menü aufblasen; fügt Elemente zur Aktionsleiste hinzu, wenn sie vorhanden ist.
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return true;
}

@Override  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_refresh:
      Toast.makeText(this, "Menüpunkt 1 ausgewählt", Toast.LENGTH_SHORT)
          .show();
      break;

         default:
             break;
             }
    return true;
    } 

}

und deine main.xml so:

das ist eine gute und einfache Anleitung zur Erstellung einer Aktionsleiste: http://www.vogella.com/tutorials/AndroidActionBar/article.html

2voto

Xeroxis Labz Punkte 21

Was mein Problem in dieser Hinsicht gelöst hat, war im Design-View, auf das Auge-Symbol zu klicken (Ansichtsoptionen) und Layoutdekorationen anzeigen auszuwählen.

Bild, das das Augensymbol in der IDE von Android Studio 3.5 zeigt

2voto

Srishti Roy Punkte 566

Beim Erstellen Ihrer Aktivität.

getSupportActionBar().setDisplayShowCustomEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(false);
        customNav = LayoutInflater.from(this).inflate(
                R.layout.action_bar_customview, null);
        getSupportActionBar().setCustomView(customNav);

Please note that I corrected a typo in the code from `R.layout.action_bar_customvieew` to `R.layout.action_bar_customview`.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X