Recherche…


Ajouter un spinner à votre activité

Dans /res/values/strings.xml:

<string-array name="spinner_options">
    <item>Option 1</item>
    <item>Option 2</item>
    <item>Option 3</item>
</string-array>

Dans le format XML:

<Spinner
    android:id="@+id/spinnerName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_options" />

En activité:

Spinner spinnerName = (Spinner) findViewById(R.id.spinnerName);
spinnerName.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         String chosenOption = (String) parent.getItemAtPosition(position);
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {}
});

Exemple de base de spinner

Spinner C'est un type de liste déroulante. Tout d'abord dans la mise en page

  <Spinner
    android:id="@+id/spinner"     <!-- id to refer this spinner from JAVA-->
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
</Spinner>

Maintenant, remplissez les valeurs dans spinner Il existe principalement deux manières de renseigner les valeurs dans spinner .

  1. À partir de XML même, créez un tableau array.xml dans le répertoire de valeurs sous res . Créer ce array
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

Maintenant, ajoutez cette ligne dans XML sppiner

            android:entries="@array/defaultValue"
  1. Vous pouvez également ajouter des valeurs via JAVA

Si vous utilisez l' activity cityArea = (Spinner) findViewById (R.id.cityArea); sinon si vous utilisez dans le fragment

cityArea = (Spinner) findViewById(R.id.cityArea);

Maintenant, créez un arrayList de Strings

ArrayList<String> area = new ArrayList<>();
//add values in area arrayList
cityArea.setAdapter(new ArrayAdapter<String>(context
                            , android.R.layout.simple_list_item_1, area));

Cela ressemblera à

entrer la description de l'image ici entrer la description de l'image ici

Selon le périphérique version Android, il rendra le style

Voici quelques-uns des thèmes par défaut

Si une application ne demande pas explicitement un thème dans son manifeste, le système Android déterminera le thème par défaut en fonction de la cible targetSdkVersion de l'application pour conserver les attentes d'origine de l'application:

Version du SDK Android Thème par défaut
Version <11 @ android: style / thème
Version entre 11 et 13 @ android: style / theme.holo
14 et plus @ android: style / Theme.DeviceDefault

Spinner peut être facilement personnalisé à l'aide de xml, par exemple

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

Créez un arrière-plan personnalisé en XML et utilisez-le.

obtenir facilement la position et d'autres détails de l'élément sélectionné dans spinner

cityArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            areaNo = position;
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

Modifier la couleur du texte de l'élément sélectionné dans spinner

Cela peut être fait de deux manières en XML

<item android:state_activated="true" android:color="@color/red"/>

Cela changera la couleur de l'élément sélectionné dans la fenêtre contextuelle.

et de JAVA faire ceci (dans le setOnItemSelectedListener (...))

 @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 ((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
            }


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow