web-dev-qa-db-fra.com

Android Spinner utilisant ArrayList <String>

J'ai utilisé des valeurs de spinner à partir de tableaux de chaînes XML jusqu'à présent comme:

Spinner karant_sp; 
karant_sp = (Spinner) findViewById(R.id.spinner1); 
ArrayAdapter<CharSequence> karant_adapter = ArrayAdapter.createFromResource(this, R.array.karant_list, Android.R.layout.simple_spinner_item);
karant_adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item);
karant_sp.setAdapter(karant_adapter);
karant_sp.setSelection(0);
karant_sp.setOnItemSelectedListener(new select_karant());

Puis-je utiliser un local Java ArrayList-String comme liste des éléments à afficher dans le menu déroulant?

Quelque chose comme:

Spinner karant_sp; 
ArrayList<String> return_likes = new ArrayList<String>();
return_likes.add("Hello");
return_likes.add("world");
karant_sp = (Spinner) findViewById(R.id.spinner1); 
ArrayAdapter<CharSequence> karant_adapter = ArrayAdapter.createFromResource(this, return_likes, Android.R.layout.simple_spinner_item);
karant_adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item);
karant_sp.setAdapter(karant_adapter);
karant_sp.setSelection(0);
karant_sp.setOnItemSelectedListener(new select_karant());

Je sais que le code ci-dessus ne fonctionne pas, mais je voudrais savoir quelque chose qui fonctionne en utilisant ArrayList-string.

22
user2901219

Oui. N'appelez simplement pas createFromResource() sur votre Adapter. Utilisez plutôt l'un des constructeurs. Quelque chose comme

ArrayAdapter<String> karant_adapter = new ArrayAdapter<String>(this,
     Android.R.layout.simple_spinner_item, return_likes);

Ceci n'est qu'un exemple, vous devrez peut-être changer quelque chose d'autre pour le faire fonctionner en fonction de ce qui ne fonctionne pas. Mais The ArrayAdapter Docs devrait aider.

53
codeMagic