2017-08-29 91 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