以编程方式填充微调器 android studio

fill spinner android studio programmatically

我需要制作自定义表单(显示 x 个字段)。 这是我创建微调器列表对象的方法:

Spinner[] listeCouleurs = new Spinner[nbEquipes];

listeCouleurs: is the name of the list

nbEquipes: is an int, (number of teams)

还有我要插入列表 (listeCouleurs) 的元素:

    ArrayList<String> couleurs = new ArrayList<String>();
    couleurs.add("Rouge");
    couleurs.add("Bleu");
    couleurs.add("Vert");
    couleurs.add("Rose");
    couleurs.add("Jaune");

然后,我将元素插入 x 微调器的方法是:

listeCouleurs[i] = new Spinner(this);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,listeCouleurs[i], couleurs);

但是,出现了这个错误:

Error:(94, 48) error: no suitable constructor found for ArrayAdapter(ConfigGame,Spinner,ArrayList) constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable (argument mismatch; Spinner cannot be converted to int) constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable (argument mismatch; Spinner cannot be converted to int) constructor ArrayAdapter.ArrayAdapter(Context,int,List) is not applicable (argument mismatch; Spinner cannot be converted to int)

如何解决这个问题?

此致

ArrayAdapter 构造函数的第二个参数应该是 int 而不是 Spinner

调用示例:

Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerArray); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);

有关可能的构造函数参数的更多信息,请参阅: https://developer.android.com/reference/android/widget/ArrayAdapter.html

确保在初始化适配器后包含这两行:

spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);

希望对您有所帮助!