2015-10-07 1 views
2

У меня есть массив, называемый spinnerItems, заполненный объектами типа DateSpinnerItem. Я передаю его адаптеру, который будет использоваться Spinner.Android: Есть ли способ добавить объект к счетчику и отобразить только его свойство?

Объекты My DataSpinnerItem имеют три свойства: Ярлык, Дата1 и Дата2.

Мой вопрос: есть ли способ добавить их к адаптеру, но в параметрах отображается только объект. Лабель?

Мой класс DataSpinnerItem:

public class DateSpinnerItem { 

public String Label; 
public String dateInicioStringValue; 
public String dateFinalStringValue; 

public DateSpinnerItem(){ 

} 
} 

Мой адаптер:

ArrayAdapter<DateSpinnerItem> adapter = new ArrayAdapter<DateSpinnerItem>(this, android.R.layout.simple_spinner_dropdown_item) { 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = super.getView(position, convertView, parent); 
      //((TextView) v).setGravity(Gravity.CENTER); 
      return v; 
     } 

     @Override 
     public int getCount() { 
      return super.getCount(); 
     } 

     public View getDropDownView(int position, View convertView,ViewGroup parent) { 

      View v = super.getDropDownView(position, convertView,parent); 

      ((TextView) v).setGravity(Gravity.CENTER); 

      return v; 

     } 
    }; 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    for (int i=0; i<spinnerItems.length; i++){ 
     adapter.add(spinnerItems[i]); 
    } 

    sp.setAdapter(adapter); 
    sp.setSelection(adapter.getCount()-1); //display hint 

Заранее спасибо!

ответ

1

Найденное решение! На самом деле это было намного проще, чем я думал.

Просто пришлось переопределить метод ToString из моего пользовательского класса (DataSpinnerItem), чтобы вернуть ярлык:

public class DateSpinnerItem { 

public String Label; 
public Date dateInicioStringValue; 
public Date dateFinalStringValue; 

public DateSpinnerItem(){ 

} 

@Override 
public String toString() { 
    return Label; 
} 
} 

Таким образом, я могу только добавить DataSpinnerItems к адаптеру, и благодаря ToString() переопределение он показывает ярлык для меня, представляющий добавленный объект!