Domanda

Non riesco a ottenere un menu di opzioni per visualizzare in un frammento di ICS in un progetto che utilizza la libreria Android-supporto-v4.jar. Sto testando su un telefono Galaxy Nexus.

Non stiamo usando la barra delle azioni, e abbiamo bisogno l'applicazione per essere 2.2+ compatibile. Noi non stiamo vedendo qualsiasi menu opzioni nell'attività in ICS (il FragmentActivity non supporta onCreateOptionsMenu)

posso ottenere i menu che lavorano nel precedente versione di Android - ho tutto il quadro corretto per attivare il menu delle opzioni (come sotto), ma mostra nulla in ICS. Quando si passa attraverso il codice della onCreateOptionsMenu non viene chiamato. Qualcuno può suggerire una correzione?

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class SuperFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.display_options_actions, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.menu_sign_in:
                break;
            case R.id.menu_sign_out:
                break;
        }
        return true;
    }
    // ...
}

Versione sistema operativo di destinazione nel file manifesto:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
È stato utile?

Soluzione

La rimozione android:targetSdkVersion="14" dal manifesto consente di nuovo il tasto menu delle opzioni.

Questo è perché ho avuto un tema di @android:style/Theme.Black.NoTitleBar specificato nel mio manifesto - con l'androide: targetSdkVersion di 14, viene inserito il menu delle opzioni per il menu barra delle azioni, in contrasto con il pulsante del menu opzioni nella barra dei pulsanti a la parte inferiore dello schermo e il tema è la rimozione del titolo di attività, e la barra delle azioni.

La barra azioni possono essere rimossi , anche se io' m non so se questo risolverà il problema come io sono ancora per farlo funzionare in modo che sia compatibile tra versioni 2.2 -. 4

Altri suggerimenti

Semplicemente cambiare l'androide. TargetSdkVersion da "14" a "10" (meno di 11), e questo problema sarà risolto

<uses-sdk android:minSdkVersion="3" 
      android:targetSdkVersion="10" />

Secondo il CDD di Android, il cut-off per il nuovo comportamento di non mostrare il menu delle opzioni è targetSdkVersion> 10. Le opzioni sono o per eseguire la vostra applicazione in modalità legacy con targetSdkVersion <= 10 o adattare la vostra applicazione per le nuove linee guida (ad esempio, aggiungere un pulsante di menu nella vostra applicazione o utilizzare una barra delle operazioni). Si noti che non c'è bisogno di aumentare la versione build di destinazione (proprietà del progetto in Eclipse) per aumentare la targetSdkVersion.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top