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="[Link]
xmlns:app="[Link]
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 [Link].listview04;
public class Tarea {
private Integer c ategoria;
private String nombre;
private String hora;
public Tarea(Integer categoria, String nombre, String hora) {
[Link] = categoria;
[Link] = nombre;
[Link] = hora;
}
public Integer getCategoria() {
return categoria;
}
public void setCategoria(Integer categoria) {
[Link] = categoria;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
[Link] = nombre;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
[Link] = hora;
}
}
4
package [Link].listview04;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
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 = [Link](
[Link] g e_list_item, // image_list_item XML creado al inicio
parent,
false);
}
//Obteniendo instancias de los elementos
ImageView categoria = (ImageView)[Link]([Link] g eView);
TextView titulo = (TextView)[Link]([Link].text1 );
TextView descripcion = (TextView)[Link]([Link].text2 );
//Obteniendo instancia de la Tarea en la posición actual
Tarea item = getItem(position);
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
//Devolver al ListView la fila creada
return listItemView;
}
}
5
package [Link].listview04;
import [Link];
import [Link];
public class DataSource {
public static List<Tarea> data() {
List<Tarea> list = new LinkedList<>();
[Link](new Tarea([Link].b lu e, "Tarea 1", "09:30"));
[Link](new Tarea([Link].g reen , "Tarea 2", "10:00"));
[Link](new Tarea([Link] , "Tarea 3", "10:30"));
[Link](new Tarea([Link].y ello w, "Tarea 4", "12:40"));
[Link](new Tarea([Link].b lu e, "Tarea 5", "18:00"));
return list;
}
}
6
5. En [Link] copiar el código y ejecutar:
package [Link].listview04;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].a ctiv ity _main);
// código nuestro
ListView list = (ListView) findViewById([Link]);
ArrayAdapter adaptador = new TareaArrayAdapter<Tarea>(this, [Link]());
[Link](adaptador);
[Link](new [Link]() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Tarea t = (Tarea) [Link](position);
[Link](getApplicationContext(),
[Link](), Toast.LENGTH_SHORT).show();
}
});
}
}
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<[Link]
xmlns:android="[Link]
xmlns:app="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="[Link]">
<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
</[Link]>
8
Propuesto
Con la información anterior, generar una aplicación que permita mostrar información de sus
amigos: