viernes, 21 de diciembre de 2007

Desarrollando aplicaciones - Trabajando con AdapterView

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.: