2014-01-19 82 views
0

我有一個2-6項目的數組列表。這些項目通過一些if/else語句添加。 我必須將此ArrayList(listFartoy)轉換爲數組(arrayFartoy)才能在微調器中工作。將arraylist轉換爲微調數組

進出口使用下面的方法:

String[] arrayFartoy = new String[listFartoy.size()]; 
arrayFartoy = listfartoy.toArray(arrayFartoy); 

這似乎很好地工作。

但是,當我把它放在微調器裏面,它不會工作。 線陣arrayFartoy [位置]變紅。

ArrayAdapter<String> adapterFartoy = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, arrayFartoy); 
     adapterFartoy.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner_fartoy.setAdapter(adapterFartoy); 

     spinner_fartoy.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int position, long id) { 
       selectedFartoy = arrayFartoy[position]; 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
      } 
     }); 

當我使用該旋轉器/適配器與普通陣列它工作得很好,所選擇的項目被存儲在「selectedFartoy」。

它的工作原理與此:

String[] arrayFartoy = new String[] { "Tarot T960", "Tarot FY680", "Ecilop", 
     "Sexycopter", "Skywalker" }; 
+1

「它不會工作」是什麼意思?當你嘗試時會發生什麼? –

+0

從'String [] arrayFartoy = new String [listFartoy.size()];''到'selectedFartoy = arrayFartoy [position];' –

回答

0

我覺得你不想說的ArrayList到字符串數組轉換。因爲你可以將arrayList直接傳遞給ArrayAdapter。像:

ArrayAdapter<String> adapterFartoy = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, listfartoy); 
adapterFartoy.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner_fartoy.setAdapter(adapterFartoy); 

    spinner_fartoy.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int position, long id) { 
      selectedFartoy = listfartoy.get(position); 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
     } 
    });