Je veux créer un spinner sans utiliser XML. Je suis nouveau dans Android et mes connaissances sont limitées. À présent, j'ai ce code (voir ci-dessus) et je veux mon spinner dans l'un des onglets de mon TabActivity
. Là n'est pas une erreur évidente mais lorsque j'ouvre mon activité, l'onglet est vide. J'apprécierais un peu d'aide.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<String> spinnerArray = new ArrayList<String>();
spinnerArray.add("one");
spinnerArray.add("two");
spinnerArray.add("three");
spinnerArray.add("four");
spinnerArray.add("five");
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_spinner_dropdown_item, spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
}
Vous devez ajouter le Spinner
à une mise en page.
Créez d'abord un container
pour le Spinner
puis créez le Spinner
et ajoutez-le à votre container
. Définissez ensuite votre contenu Activity
dans votre container
.
Cela pourrait être fait comme ceci, dans votre méthode onCreate
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
LinearLayout layout = new LinearLayout(this);
ArrayList<String> spinnerArray = new ArrayList<String>();
spinnerArray.add("one");
spinnerArray.add("two");
spinnerArray.add("three");
spinnerArray.add("four");
spinnerArray.add("five");
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_spinner_dropdown_item, spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
layout.addView(spinner);
setContentView(layout);
}
MODIFIER:
Juste pour clarifier: si le Spinner
n'est pas ajouté au contenu du Activity
dans une mise en page, il n'est pas visible, c'est pourquoi vous n'obtenez aucune erreur ou quoi que ce soit, car il n'y a pas d'erreurs dans votre code en soi ;-)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout layout = new LinearLayout(this);
// The following can also be done using a loop
ArrayList<String> spinnerArray = new ArrayList<String>();
spinnerArray.add("one");
spinnerArray.add("two");
spinnerArray.add("three");
spinnerArray.add("four");
spinnerArray.add("five");
Spinner spinner = new Spinner(MainActivity.this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(MainActivity.this, Android.R.layout.simple_spinner_dropdown_item, spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
layout.addView(spinner);
setContentView(layout);
}
}