2014-09-19 2 views
0

Я пытаюсь заполнить счетчик из ArrayList.ArrayAdapter из ArrayList, показывающий идентификатор ресурса, не value

Проблема заключается в том, что вместо отображения значений в ArrayList, счетчик показывает полный путь к идентификатору ресурса!

мой код

@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

+0

'полный путь к ресурсу id', что вы имеете в виду? (Я думаю, вам нужно переопределить ArrayAdapter, чтобы заполнить представление с помощью элементов из BarcodeSpinner, которые вам действительно нужны. То, что вы видите, вероятно, является реализацией по умолчанию по умолчанию) – njzk2

ответ

1

Реализация по умолчанию ArrayAdapter, будет вызывать toString метод объекта вы предоставляете в набор данных. Легким исправлением было бы переопределить этот toString в вашем классе BarcodeSpinner, заставив его вернуть строку, которую вы хотите показать

+0

Отлично, спасибо. – dave

Смежные вопросы