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.

  • Comment supprimer la mise au point automatique / clavier d'un champ lorsque l'écran s'affiche?
  • Comment mélanger / superposer deux fichiers audio mp3 dans un fichier mp3 (ne pas concaténer)
  • Studio Android "Use gradle wrapper" grisé
  • Mise à jour des services Play de 8.1 à 8.3 avec Proguard activé
  • Les onglets personnalisés Chrome modifient le bouton de fermeture par défaut qui ne fonctionne pas
  • Désactiver autosuggest pour EditText?
  • 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!

  • Comment obtenir une valeur aléatoire à partir d'une chaîne de caractères dans Android?
  • Quand l'intention ACTION_DEVICE_STORAGE_LOW est-elle diffusée?
  • Comment puis-je obtenir mon émulateur d'Android utiliser l'interface VPN de mon ordinateur?
  • Envoyer la demande d'application à tous les amis de Facebook en utilisant 'Dialogues de requêtes' dans Android
  • - java.lang.NullPointerException - setText sur la référence d'objet nulle
  • Enregistrer les données sensibles dans React Native
  • 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.