2014-09-19 71 views
0

我正在嘗試從一個ArrayList填充一個微調框。從ArrayList ArrayAdapter顯示資源ID不值

我的問題是,而不是顯示ArrayList中的值,微調是顯示的完整路徑的資源ID而不是!

我的代碼

@Override 
public void CartonMoveOptions(ArrayList<BarcodeSpinner> bSpinner) { 
    Spinner BarcodeChoice = (Spinner) rootView.findViewById(R.id.cartonChoices); 
    BarcodeChoice.setVisibility(View.VISIBLE); 
    ArrayAdapter<BarcodeSpinner> a = new ArrayAdapter<BarcodeSpinner>(getActivity(), android.R.layout.simple_spinner_item, bSpinner); 
    a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    BarcodeChoice.setAdapter(a); 
} 

BarcodeSpinner包含兩行,唯一的內容是每行一個字符串。

任何人都可以指出什麼是錯的?

這是我BarcodeSpinner類

public class BarcodeSpinner { 

    String Barcode; 

    public String getBarcode() { 
     return Barcode; 
    } 

    public void setBarcode(String barcode) { 
     Barcode = barcode; 
    } 
} 

答:

添加

@Override 
Public String toString() 
{ 
return Barcode; 
} 

到BarcodeSpinner

+0

你的問題可能在於任何'toString()'在'BarcodeSpinner'中返回的東西。 – CommonsWare 2014-09-19 12:51:20

+0

'資源ID的完整路徑'你是什麼意思? (我想你需要重寫ArrayAdapter以使用BarcodeSpinner中實際需要的元素來填充視圖。你看到的可能是默認的toString實現) – njzk2 2014-09-19 12:51:39

回答

1

ArrayAdapter默認的實現,將調用對象的toString方法你提供的數據集。簡單的解決方法是在你的BarcodeSpinner類中重寫這個toString,使其返回你想要顯示的字符串

+0

非常感謝。 – dave 2014-09-19 13:00:56