Bonjour,

 

Aujourd'hui je viens vous expliquer comment créer une liste déroulante grâce à une expression mathématique, afin de remplir automatiquement des valeurs numériques spécifiques, dans une application Xamarin.Android, et Android classique.

On utilisera donc des fichiers axml pour l'interface Android, et Xamarin, en C# pour développer et appliquer les fonctionnalités de notre "Spinner", qui est la classe du menu déroulant en Android. Le code en Java est très similaire.

 

D'abord, il faut comprendre comment fonctionne un "Spinner". C'est un bouton, cliquable, qui va dérouler une liste vers le bas. Voir image ci-jointe, un Spinner créé à partir d'une liste de chaines de caractères.

 

3676131558?profile=original

 

Cette liste à été créée grâce à une "string-array" dans le fichier "strings.xml" comme suit :

  <string-array name="villes_spinner">

      <item>Toulouse</item>

      <item>Bordeaux</item>

      <item>Montpelier</item>

      <item>Biarritz</item>

  </string-array>

 

Dans "VilleActivity.cs" (en C#)

   var villesPicker = FindViewById<Spinner> (Resource.Id.villesPicker);

            // Créé un ArrayAdapter utilisant la string array et un spinner par défaut

            var villesAdapter =

                ArrayAdapter.CreateFromResource (thisResource.Array.villes_spinner,

                    Android.Resource.Layout.SimpleSpinnerItem);

            // Spécifie la disposition par défaut "SimpleSpinnerDropDownItem"

            villesAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);

            // Associe l'adapter au spinner

            villesPicker.Adapter = villesAdapter;

 

Mais imaginons que j'ai besoin de toutes les valeurs de 0 ,04 à 1 par palier de 0,05. Afin d'éviter de taper la totalité des valeurs, ce qui serait fastidieux, illisible et contre-productif, il est possible d'adapter ce code afin qu'il affiche les valeurs désirées.

Inutile d'utiliser "strings.xml", nous allons tout écrire dans le corps de "VilleActivity.cs" :

 

            // Créé le tableau des valeurs de 0,04 à 1 par palier de 0,05

   float[] tab = new float[20];

            for (int i=0; i<20; i++)

            {

                tab[i]=0.4f+(i*0.5f);

            }

            // La suite est similaire

var spinner = FindViewById<Spinner> (Resource.Id.mySpinner);

            // Ici, on associe notre tableau de valeurs "tab" à l'adapter

   var spinnerAdapter =

                new ArrayAdapter<float>(this,Android.Resource.Layout.SimpleSpinnerItem,tab);

            spinnerAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);

            spinner.Adapter = spinnerAdapter;

 

 

Et nous disposons à présent de notre spinner qui ressemble à ça :

Notez qu'il est possible de le dérouler vers le bas afin d'avoir toutes les valeurs voulues !

 

3676131585?profile=original

 

Prochainement, la créer d'une base de données locale avec SQLiteStore !

Envoyez-moi un e-mail lorsque des commentaires sont laissés –

Vous devez être membre de we-cloud pour ajouter des commentaires !

Join we-cloud

Commentaires

This reply was deleted.