Si vous avez deux filateurs, vous pouvez remplir un quand une sélection est faite dans l'autre. Un OnItemSelectedListener serait bon dans ce but. Quelque chose comme ce qui suit pourrait fonctionner, bien que je ne l'ai pas testé, il peut donc contenir des erreurs. Même si cela fonctionne, tout ne peut pas être fait de la meilleure façon possible.
final HashMap<String, ArrayList<String>> optionsForCategories;
final Spinner categorySpinner;
final spinner individualSpinner;
final ArrayAdapter<String> individualSpinnerAdapter;
...
categorySpinner.setOnItemSelectedListener(new OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String selectedCategory = parent.getItemAtPosition(position);
individualSpinnerAdapter.clear();
individualSpinnerAdapter.addAll(optionsForCategories.get(selectedCategory);
}
public void onNothingSelected(AdapterView<?> parent) { }
});
Il serait parfaitement naturel et devrait avoir deux filateurs. Cependant, si vous n'en voulez qu'un seul (ce qui n'est pas clair, mais semble être implicite dans votre question), alors vous pourriez afficher une boîte de dialogue à partir du OnItemSelectedListener du spinner.