ListView y Id ocultos. ¿Como es posible?
Estoy desarrollando una aplicación para Android y ahora he implementado un ListView que muestra una lista de cursos, conectados a una base de datos.
Me gustaría saber cómo incluir, con el nombre, un id oculto (que viene del db) para que una vez que el usuario haga clic en los elementos de la aplicación va a la vista relativa de los cursos seleccionados.
- ListView no se desplaza hasta el final cuando el teclado
- Estado de comprobación de ListView Viewholder
- Cambiar el texto de un botón dentro de un ListView en Android
- Android: ListView con CheckBox, poblado desde la base de datos SQLite no funciona
- Android - Cómo pulsar el elemento ListView mediante programación
¿Y cómo puedo mantener el ID durante la navegación dentro de la vista del curso?
Por el momento mi código solo carga el nombre de los cursos desde el db y se establece en la vista de lista:
ArrayAdapter<String> result = new ArrayAdapter<String>(CourseActivity.this, android.R.layout.simple_list_item_1); for (CourseRecord c : get()) result.add(c.getFullname()); lv.setAdapter(result);
Obviamente soy capaz de hacer también c.getid () pero no dónde poner el id.
Muchas gracias.
PD: ¿Tal vez alguien también tiene gráficos muy buenos de la vista de lista?
- ListView ocultar algunos artículos
- Cómo detectar si un listview está desplazándose hacia arriba o hacia abajo en android?
- Eliminar elemento en ArrayAdapter <String> en ListView
- Idea sobre la implementación del siguiente menú emergente en ListView
- No detener la animación en listview
- Pie de página debajo de la vista de lista fija en la parte inferior de la pantalla
- Frontera de elementos de listview en android
- Desmarca todas las casillas de verificación en un ListView personalizado
Cambiar su adaptador de matriz como este.
private ArrayAdapter<String> result = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1){ @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.row, null); } v.setTag(getMyIdForPosition(position)); return convertView; } };
Y tiene un manejador de clics de elemento para recibir los identificadores seleccionados
private OnItemClickListener itemClickedHandler = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { String myId = (String)v.getTag(); doYourStuff(myId); } };
Asignar el oyente a la lista
myList= (ListView)findViewById(R.id.history); myList.setOnItemClickListener(itemClickedHandler);
Puede almacenar el ID en una TextView oculta. En el elemento de lista XML, agregue 'android: visibility = "gone"' al TextView. Del mismo modo en el controlador de clics puede leer el id de la vista de texto.
También puede almacenar ID utilizando el método setTag (Object object) de una vista. Utilice el método getTag () para extraer ese id de esa vista.
- Visual Studio 2015 CTP5 Emulador Android loopback a localhost?
- Cómo extender la actividad de dos clases de Android?