Adaptador de spinner personalizado simple_spinner_dropdown_item no se muestra correctamente

Estoy recibiendo datos de una base de datos SQLite y asignándolos a objetos de datos. Estoy utilizando un adaptador de spinner personalizado (implementa SpinnerAdapter ) para ponerlos en hilanderos para anular los getItem() y getItemId() . Sin embargo, el android.R.layout.simple_spinner_dropdown_item no se muestra correctamente (capturas de pantalla de mi Galaxy Tab 2 10.1):

Rotador incorrecto del objeto de datos

Por el contrario esto es un spinner que se puebla de un arsenal en R.array (la mirada / el tamaño correctos):

Rotor adecuado de R.array

Hecho por este código:

 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.quote_prices, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); 

No puedo obtener este aspecto implementando / extendiendo algún tipo de adaptador (también he intentado extender BaseAdapter sin éxito). Este es el código para mi adaptador giratorio en su estado actual:

 public class MySpinnerAdapter implements SpinnerAdapter { private Context context; /** * The internal data (the ArrayList with the Objects). */ private List<? extends BaseDO> data; public MySpinnerAdapter(Context context, List<?extends BaseDO> data){ this.context = context; this.data = data; } /** * Returns the Size of the ArrayList */ @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return data.get(position).getId(); } @Override public int getItemViewType(int position) { return 0; } @Override public int getViewTypeCount() { return 1; } @Override public boolean hasStableIds() { return false; } @Override public boolean isEmpty() { return false; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = vi.inflate(android.R.layout.simple_spinner_dropdown_item, null); } ((TextView) convertView).setText(data.get(position).toString()); return convertView; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) View.inflate(context, android.R.layout.simple_spinner_item, null); textView.setText(data.get(position).toString()); return textView; } @Override public void registerDataSetObserver(DataSetObserver observer) { } @Override public void unregisterDataSetObserver(DataSetObserver observer) { } public List<? extends BaseDO> getData() { return data; } } 

Cualquier ayuda sería apreciada.

EDIT: Olvidé mencionar que esto se llama usando

 spnnrTerm.setAdapter(new MySpinnerAdapter(getActivity(), termList)); 

Sé que esta pregunta es vieja pero he estado teniendo el mismo problema y acabo de figurar hacia fuera el problema. Después de examinar la fuente de ArrayAdapter.java me di cuenta de que estaba pasando el ViewGroup a la inflater y yo no era. Este fue el problema todo el tiempo.

  @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = vi.inflate(android.R.layout.simple_spinner_dropdown_item, parent, false); } ((TextView) convertView).setText(data.get(position).toString()); return convertView; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) View.inflate(context, android.R.layout.simple_spinner_item, null); textView.setText(data.get(position).toString()); return textView; } 
  • Cómo configurar la fuente de fuente personalizada a Spinner texto de forma programática?
  • Altura del menú desplegable de Spinner para coincidir con el padre
  • ¿Cómo puedo invocar una acción en la misma selección de valor de spinner
  • Establecer el color de fondo del elemento seleccionado en la navegación desplegable de Android
  • Estilo de la barra de desplazamiento de Spinner
  • Cómo diseñar una ruleta en Android
  • Spinner con elementos de varias líneas superpone la visualización de elementos seleccionados en Froyo
  • Cómo capturar evento onClick en Android para una ruleta
  • Cómo agregar borde a una ruleta sin afectar su menú emergente
  • Android menú desplegable (sin girador!)
  • ¿Cómo actualizar dinámicamente un spinner?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.