2017-08-29 54 views
-2

我需要制作一个自定义窗体(显示x个字段)。 还有就是我创建一个微调列表对象的方式:以编程方式填充微调器android studio

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 spinner的方式:

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)

如何解决此问题?

问候

+0

你有错误信息中写的答案。它需要最基本的一般编程知识来解决这个问题。在开始提问SO之前,请先学习基础知识。 –

回答

0

一个ArrayAdapter构造的第二个参数应该是int不是一个微调

例呼叫:

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

+0

我对此很好,但问题是我目前正在以编程方式创建微调器,而不是使用XML ...... – FindL

+0

第二个参数是指示微调器将如何显示的第二个参数。 'android.R.layout.simple_spinner_item'是Android的内部版本 – joao86

0

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

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

希望这会有所帮助!

+0

这与编译错误不适合的构造函数无关。 – csmckelvey