0% found this document useful (0 votes)
34 views9 pages

List View 04

The document describes steps to create an Android list view application. It involves: 1) Creating an empty activity with a list view 2) Designing an XML layout for list items with an image and text 3) Adding image resources and model classes for list data 4) Implementing a custom adapter to populate the list view from sample data 5) Configuring the list view in the main activity

Uploaded by

45338983
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views9 pages

List View 04

The document describes steps to create an Android list view application. It involves: 1) Creating an empty activity with a list view 2) Designing an XML layout for list items with an image and text 3) Adding image resources and model classes for list data 4) Implementing a custom adapter to populate the list view from sample data 5) Configuring the list view in the main activity

Uploaded by

45338983
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

ListView04

1. Crear una Empty Activity. Eliminar textView HelloWord y en su lugar poner un listView.
Darle ID (listView) si no tuviese.

2. Crear el XML image_list_item y agregar código:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp" />

1
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="New Text"
android:textSize="20sp" />

<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/text1"
android:text="New Text"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>

</LinearLayout>

2
3. Copiar las imágenes en drawable:

3
4. Crear las clases Tarea, TareaArrayAdapter y DataSource (editar código):

package com.example.victorbalta.listview04;

public class Tarea {

private Integer c ategoria;


private String nombre;
private String hora;

public Tarea(Integer categoria, String nombre, String hora) {


this.categoria = categoria;
this.nombre = nombre;
this.hora = hora;
}

public Integer getCategoria() {


return categoria;
}

public void setCategoria(Integer categoria) {


this.categoria = categoria;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getHora() {


return hora;
}

public void setHora(String hora) {


this.hora = hora;
}
}

4
package com.example.victorbalta.listview04;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class TareaArrayAdapter<T> extends ArrayAdapter<Tarea> {

public TareaArrayAdapter(Context context, List<Tarea> objects) {


super(context, 0, objects);
}

@Override
public View getView(int position, View convertView, ViewGroup parent){

//Obteniendo una instancia del inflater


LayoutInflater inflater = (LayoutInflater)getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

//Salvando la referencia del View de la fila


View listItemView = convertView;

//Comprobando si el View no existe


if (null == convertView) {
//Si no existe, entonces inflarlo con image_list_item.xml creado por nosotros
listItemView = inflater.inflate(
R.layout.ima g e_list_item, // image_list_item XML creado al inicio
parent,
false);
}

//Obteniendo instancias de los elementos


ImageView categoria = (ImageView)listItemView.findViewById(R.id.ima g eView);
TextView titulo = (TextView)listItemView.findViewById(R.id.text1 );
TextView descripcion = (TextView)listItemView.findViewById(R.id.text2 );

//Obteniendo instancia de la Tarea en la posición actual


Tarea item = getItem(position);

categoria.setImageResource(item.getCategoria());
titulo.setText(item.getNombre());
descripcion.setText(item.getHora());

//Devolver al ListView la fila creada


return listItemView;
}
}

5
package com.example.victorbalta.listview04;

import java.util.LinkedList;
import java.util.List;

public class DataSource {

public static List<Tarea> data() {


List<Tarea> list = new LinkedList<>();

list.add(new Tarea(R.drawable.b lu e, "Tarea 1", "09:30"));


list.add(new Tarea(R.drawable.g reen , "Tarea 2", "10:00"));
list.add(new Tarea(R.drawable.red , "Tarea 3", "10:30"));
list.add(new Tarea(R.drawable.y ello w, "Tarea 4", "12:40"));
list.add(new Tarea(R.drawable.b lu e, "Tarea 5", "18:00"));

return list;
}
}

6
5. En MainActivity.java copiar el código y ejecutar:

package com.example.victorbalta.listview04;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a ctiv ity _main);

// código nuestro
ListView list = (ListView) findViewById(R.id.listView);
ArrayAdapter adaptador = new TareaArrayAdapter<Tarea>(this, DataSource.data());
list.setAdapter(adaptador);

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {

Tarea t = (Tarea) parent.getItemAtPosition(position);

Toast.makeText(getApplicationContext(),
t.getNombre(), Toast.LENGTH_SHORT).show();
}
});
}
}

Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.victorbalta.listview04.MainActivity">

<ListView
android:id="@+id/listView"
android:layout_width="368dp"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />

7
</android.support.constraint.ConstraintLayout>

8
Propuesto
Con la información anterior, generar una aplicación que permita mostrar información de sus
amigos:

You might also like