Ajout de spinner à ActionBar (pas de navigation

J'ai ajouté un spinner à mon ActionBar en utilisant la deuxième option de la réponse ici .

Comment ajouter un adaptateur de filière à la centrifugeuse? J'ai essayé d'utiliser un objet Spinner tel que Google décrit ici, mais obtenez un objet Spinner nul.

  • Un Java Runtime Environment (JRE) ou Java Development Kit (JDK) doit être disponible pour exécuter Eclipse
  • La clé publique Android Source Repo GPG introuvable
  • Peut-on avoir 2 applications en cours d'exécution sur un périphérique Android?
  • Android viewview, glisser vers l'action
  • Vue de notification personnalisée
  • Exécuter un script shell dans Gradle
  • Quelqu'un sait-il comment faire cela? Je ne veux pas que le spinner soit dans la zone de navigation de la barre d'action mais avec les autres éléments d'action (j'utilise la barre d'action partagée).

    Merci pour l'aide!

  • Compilation croisée - tcpdump pour x86
  • Afficher une chaîne HTML formatée
  • Menu d'options de bouton d'action flottante Android
  • Meilleures pratiques (meilleures pour Android): authentifiez un utilisateur avec Facebook ou Google login
  • Popupwindow avec image
  • Invocation des fonctions JNI dans le nom du package Android contenant le trait de soulignement
  • 4 Solutions collect form web for “Ajout de spinner à ActionBar (pas de navigation”

    Je sais que c'est une vieille question, mais au cas où quelqu'un trébuchait dessus (comme je l'ai fait) et cherche toujours une réponse complète, voici comment le faire à l'aide de la bibliothèque de compatibilité, de sorte qu'il fonctionne à partir de v7 (Android 2.1 Eclair) à l'actuel v19 (Android 4.4 KitKat):

    Dans menu_layout.xml:

    <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/spinner" yourapp:showAsAction="ifRoom" yourapp:actionViewClass="android.widget.Spinner" /> </menu> 

    En utilisant http://schemas.android.com/apk/res-auto namespace alias comme yourapp vous permet d'utiliser les attributs showAsAction et actionViewClass qui n'existent pas sur les anciennes versions d'Android.

    Ensuite, dans votre code d'activité:

     @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_layout, menu); MenuItem item = menu.findItem(R.id.spinner); Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); spinner.setAdapter(adapter); // set the adapter to provide layout of rows and content spinner.setOnItemSelectedListener(onItemSelectedListener); // set the listener, to perform actions based on item selection 

    Et voilà!

    Je sais que vous avez abandonné le spinner, mais je vais donner quelques conseils ici au cas où d'autres personnes ont le même problème ou que vous venez de développer le même modèle dans une autre application

    • Si vous obtenez null, c'est parce que vous n'avez pas spécifié correctement les identifiants. Vérifiez les identifiants.
    • Sur les liens que vous avez montrés sur des choses compliquées en spécifiant une actionLayout qui est juste un spinner, vous pouvez simplement spécifier une actionViewClass = "android.widget.Spinner" qui fera l'affaire.
    • Ensuite, dans OnCreateOptionsMenu vous faites:

       inflater.inflate(R.menu.my_menu, menu); // inflate the menu Spinner s = (Spinner) menu.findItem(R.id.my_menu_spinner).getActionView(); // find the spinner SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity().getActionBar() .getThemedContext(), R.array.my_menu_spinner_list, android.R.layout.simple_spinner_dropdown_item); // create the adapter from a StringArray s.setAdapter(mSpinnerAdapter); // set the adapter s.setOnItemSelectedListener(myChangeListener); // (optional) reference to a OnItemSelectedListener, that you can use to perform actions based on user selection 

    Codage heureux …

    Eh bien, j'ai abandonné l'idée Spinner pour l'utilisation d'un sous-menu. Je me suis rendu compte que le spinner était pour sélectionner les choses qui restaient sélectionnées; Les sous-menus cousus pour être mieux adaptés à l'interface utilisateur.

    Merci quand même.

    PS Je suis nouveau ici. Si vous répondez à ma propre question est ennuyant pour la communauté, faites-le moi savoir. Je veux être un bon citoyen. Je vous ai déjà beaucoup aidé.

     inflater.inflate(R.menu.my_menu, menu); // inflate the menu Spinner s = (Spinner) menu.findItem(R.id.my_menu_spinner).getActionView(); // find the spinner SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity().getActionBar() .getThemedContext(), R.array.my_menu_spinner_list, android.R.layout.simple_spinner_dropdown_item); // create the adapter from a StringArray s.setAdapter(mSpinnerAdapter); // set the adapter s.setOnItemSelectedListener(myChangeListener); // (optional) reference to a OnItemSelectedListener, that you can use to perform actions based on user selection 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.