Spinner con ArrayAdapter personalizado para objetos que no muestran el elemento seleccionado
Tengo un ArrayAdapter personalizado para representar objetos en un control giratorio, puedo cargar mi lista de artículos y mostrarla para la selección, pero cuando la selección real sucede el spinner no muestra nada.
Código de actividad:
- Android paquete / nombre de la clase en la disposición XML?
- Android: Obtener una vista Referencia a un elemento de menú
- Android toggleButton.setOnText y .invalidate no actualiza el texto
- Cómo obtener la posición de View en onCreateViewHolder
- Personalizar el indicador TabLayout. ¿Haciendo la esquina de la esquina del indicador de la pestaña?
public MetroData metroData; private Spinner spinner; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); metroData = new MetroData(); spinner = (Spinner) findViewById(R.id.spinner1); StopArrayAdapter dAdapter = new StopArrayAdapter(this, metroData.Stops); spinner.setAdapter(dAdapter); }
StopArrayAdapter:
public class StopArrayAdapter extends ArrayAdapter<MetroStop> { private List<MetroStop> items; private Activity activity; public StopArrayAdapter(Activity activity, List<MetroStop> items) { super(activity, android.R.layout.simple_list_item_1, items); this.items = items; this.activity = activity; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { TextView v = (TextView) super.getView(position, convertView, parent); if (v == null) { v = new TextView(activity); } v.setTextColor(Color.BLACK); v.setText(items.get(position).getName()); return v; } @Override public MetroStop getItem(int position) { return items.get(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater inflater = activity.getLayoutInflater(); v = inflater.inflate(R.layout.view_spinner_item, null); } TextView lbl = (TextView) v.findViewById(R.id.text1); lbl.setTextColor(Color.BLACK); lbl.setText(items.get(position).getName()); return convertView; } }
Spinner ver plantilla de artículo:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="match_parent" android:textColor="#222"/>
¿Alguna idea de por qué la vista de elemento seleccionado no funciona? Por cierto, también lo he probado con un ArrayAdapter normal con el mismo resultado.
Actualización Parece que la vista se genera, pero mirando en el visor de jerarquía, no se obtiene la vista, Measured / Layout / Draw = n / a.
- ExpandableLists en Android, sólo quiero permitir que una lista de padres se expanda al mismo tiempo
- Cómo obtener la vista del grupo en la lista expandiblelist en android?
- API de Android 23. WebView cómo ignorar errores de JavaScript
- android webview Relacionados
- Cómo crear un ImageView que llena la altura de los padres y muestra una imagen lo más grande posible?
- Android 4.1 webview javascript no funciona.
- Consiga enfocado View from ViewPager
- Cómo obtener una vista desde un evento de coordenadas en android cuando la vista establecer la rotación?
Descubrí cuál era el problema. Desde que estaba buscando los datos para el spinner de Internet, que necesitaba para desencadenar un notifyDataSetChanged (), aunque sin esto el contenido de la ruleta se actualizaron. Parece que la vista de elemento seleccionado no obtuvo la notificación.
- ¿Por qué debería deshabilitar ProGuard para vending.billing?
- Bloquear determinadas URL de seguridad en la vista web de Android