以编程方式填充微调器android工作室

时间:2017-08-29 15:20:08

标签: android spinner fill programmatically

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

Spinner[] listeCouleurs = new Spinner[nbEquipes];
  

listeCouleurs:是列表的名称

     

nbEquipes:是一个int,(团队数量)

我想要插入列表中的元素(listeCouleurs):

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

然后,有一种方法我将元素插入x spinner:

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

但是,有这个错误:

  

错误:(94,48)错误:找不到合适的构造函数   ArrayAdapter(ConfigGame,Spinner,ArrayList)构造函数   ArrayAdapter.ArrayAdapter(Context,int,int)不适用(参数   不匹配; Spinner无法转换为int)构造函数   ArrayAdapter.ArrayAdapter(Context,int,String [])不适用   (参数不匹配; Spinner无法转换为int)构造函数   ArrayAdapter.ArrayAdapter(Context,int,List)不适用   (参数不匹配; Spinner无法转换为int)

如何解决此问题?

此致

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

希望这有帮助!