2014-09-19 73 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