Documento original: Working with AdapterViews (Binding to Data)
Trabajando con AdapterViews (asociando datos a vistas)
[Título original: Working with AdapterViews (Binding to Data) ]
Como se mencionón, algunos grupos de vistas tienen UI. Estos objetos tipicamente son subclases de "AdapterView". Algunos ejemplos son "Gallery" (una "widget" con un selección de imágenes) y "ListView" (una lista de vistas. Estos objetos hacen dos tareas en común:
Llenar el esquema con datos.
Manipular las selecciones del usuario.
Llenando el esquema con datos
[Título original: Filling the layout with data]
Esto es típicamente hecho a través de la asociación de la clase con un "Adapter" que toma los datos de alguna parte: una lista que el código suministra o el resultado de una consulta a una base de datos del dispositivo.
// Get a Spinner and bind it to an ArrayAdapter that
// references a String array.
private String[] fruit = {"apples", "oranges", "lemons"}
Spinner s1 = (Spinner)findViewById(R.id.fruitlist);
s1.setAdapter(new ArrayAdapter<String>(this, R.layout.spinner_1, mStrings));
// Load a Spinner and bind it to a data query.
private String[] cols={android.provider.Contacts.PeopleColumns.NAME};
private Cursor cur = managedQuery(android.provider.Contacts.People.CONTENT_URI, cols, null, null);
s2.setAdapter(new CursorAdapter(cur, this));
Manipular las selecciones del usuario
[Título original: Handling user selections]
Esto es hecho al asignar al miembro "AdapterView.OnItemClickListener" de la clase un objeto escuchador de eventos y capturar los cambios que el usuario hace en su selección.
// Create a message handling object as an anonymous class.
private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id)
{
// Display a messagebox.
showAlert("You've got an event", "Clicked me!", "ok", false);
}
};
// Now hook into our object and set its onItemClickListener member
// to our class handler object.
mHistoryView = (ListView)findViewById(R.id.history);
mHistoryView.setOnItemClickListener(mMessageClickedHandler);
No hay comentarios.:
Publicar un comentario