how - set a toolbar android




Come aggiungere il menu delle opzioni della barra delle azioni in Android Fragments (2)

Sono in ritardo per la risposta, ma penso che questa sia un'altra soluzione che non è menzionata qui, quindi postare.

Passo 1: Crea un xml di menu che vuoi aggiungere come devo aggiungere un'azione filtro sulla mia barra delle azioni, quindi ho creato un xml filter.xml . La linea principale da notare è Android: orderInCategory mostrerà l'icona di azione all'inizio o alla fine ovunque tu voglia mostrare. Un'altra cosa da notare è il valore, se il valore è inferiore a quello che verrà mostrato all'inizio e se il valore è maggiore, verrà visualizzato alla fine.

filter.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" >


    <item
        android:id="@+id/action_filter"
        android:title="@string/filter"
        android:orderInCategory="10"
        android:icon="@drawable/filter"
        app:showAsAction="ifRoom" />


</menu>

Passo 2: Nel metodo onCreate () del frammento inserisci semplicemente la linea sotto come menzionato, che è responsabile per richiamare il metodo onCreateOptionsMenu (menu, menuInflater inflater) come in un'attività.

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

Passaggio 3: ora aggiungi il metodo onCreateOptionsMenu che verrà sovrascritto come:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.filter, menu);  // Use filter.xml from step 1
    }

Passaggio 4: ora aggiungi il metodo onOptionsItemSelected con il quale puoi implementare la logica qualsiasi cosa tu voglia fare quando selezioni l'icona dell'azione aggiunta da actionBar :

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if(id == R.id.action_filter){
            //Do whatever you want to do 
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

Sto cercando di avere un menu opzioni in Android Fragments . ActionBar menu delle opzioni di ActionBar non viene visualizzato nei miei frammenti.

Ecco il mio codice e ho sia onCreateOptionsMenu() che onOptionSelected() . Il mio codice non mostra alcun errore. Ma il menu delle opzioni non viene visualizzato.

package org.reachout;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import org.general.R;

public class ViewMessageFragment extends Fragment {

    /* (non-Javadoc)
     * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        if (container == null) {
            // We have different layouts, and in one of them this
            // fragment's containing frame doesn't exist.  The fragment
            // may still be created from its saved state, but there is
            // no reason to try to create its view hierarchy because it
            // won't be displayed.  Note this is not needed -- we could
            // just run the code below, where we would create and return
            // the view hierarchy; it would just never be used.
            return null;
        }
        return (LinearLayout)inflater.inflate(R.layout.viewmessages_tab_fragment_layout, container, false);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.askexperts_menu, menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       // handle item selection
       switch (item.getItemId()) {
          case R.id.action_settings:
             // do s.th.
             return true;
          default:
             return super.onOptionsItemSelected(item);
       }
    }   

}





android-optionsmenu