121 votes

Comment ajouter des éléments à un spinner sous Android ?

Comment ajouter des éléments à un spinner ?

6voto

EASI Points 1827

Ce code lit essentiellement un objet de type tableau JSON et convertit chaque ligne en une option dans le spinner qui est passé en paramètre :

public ArrayAdapter<String> getArrayAdapterFromArrayListForSpinner(ArrayList<JSONObject> aArrayList, String aField)
{
    ArrayAdapter<String> aArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item);
    aArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item); //android.R.layout.simple_spinner_dropdown_item
    try {
        for (int i = 0; i < aArrayList.size(); i++)
        {
            aArrayAdapter.add(aArrayList.get(i).getString(aField)); 
        }
    } catch (JSONException e) {
        e.printStackTrace();
        ShowMessage("Error while reading the JSON list");
    }
    return aArrayAdapter;       
}

2voto

Hossein Points 88

Ajoutez un tourniquet à la disposition XML, puis ajoutez ce code au fichier Java :

Spinner spinner;
spinner = (Spinner) findViewById(R.id.spinner1) ;
java.util.ArrayList<String> strings = new java.util.ArrayList<>();
strings.add("Mobile") ;
strings.add("Home");
strings.add("Work");
SpinnerAdapter spinnerAdapter = new SpinnerAdapter(AddMember.this, R.layout.support_simple_spinner_dropdown_item, strings);
spinner.setAdapter(spinnerAdapter);

1voto

Pankaj Malviya Points 109

Ajoutez ce code après la mise à jour de la liste

Supposons :

Le nom de la variable ArrayAdapter<String> est le suivant dataAdapter , et le nom de la variable Liste est clés .

  • dataAdapter.addAll(keys) ;
  • dataAdapter.notifyDataSetChanged() ;

1voto

sajad abbasi Points 472

Un moyen plus simple est d'utiliser la bibliothèque de rotation des matériaux : https://github.com/jaredrummler/MaterialSpinner

à ajouter à votre projet :

compile 'com.jaredrummler:material-spinner:1.2.4'

et utiliser comme ceci :

<com.jaredrummler.materialspinner.MaterialSpinner
    android:id="@+id/spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

et le code java qui vous permet d'ajouter des éléments en java si facilement :

MaterialSpinner spinner = (MaterialSpinner) findViewById(R.id.spinner);
spinner.setItems("item 1", "item 2", "item 3", "item 4", "item 5");
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {

  @Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
    Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
  }
});

1voto

Zon Points 518

Pour ajouter un autre élément a Spinner vous pouvez :

ArrayAdapter myAdapter = 
  ((ArrayAdapter) mySpinner.getAdapter());

myAdapter.add(myValue);

myAdapter.notifyDataSetChanged();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X