Está en la página 1de 8

ListView03

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 two_list_item y agregar código:

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


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

<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" />

1
<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>

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

package com.example.victorbalta.listview03;

public class Tarea{

private String nombre;


private String hora;

public Tarea(String nombre, String hora){


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

public void setNombre(String nombre){


this.nombre = nombre;
}

public void setHora(String hora){


this.hora = hora;
}

public String getNombre(){return nombre;}


public String getHora(){return hora;}
}

3
package com.example.victorbalta.listview03;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
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 two_list_item.xml creado por nosotros
listItemView = inflater.inflate(
R.layout.two _list_item, // two_list_item es etiqueta de XML creado al inicio
parent,
false);
}

//Obteniendo instancias de los elementos


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);

titulo.setText(item.getNombre());
descripcion.setText(item.getHora());

//Devolver al ListView la fila creada


return listItemView;
}
}

4
package com.example.victorbalta.listview03;

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

public class DataSource {

public static List<Tarea> tareas() {


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

list.add(new Tarea("Tarea 1", "09:30"));


list.add(new Tarea("Tarea 2", "10:00"));
list.add(new Tarea("Tarea 3", "10:30"));
list.add(new Tarea("Tarea 4", "12:40"));
list.add(new Tarea("Tarea 5", "18:00"));

return list;
}
}

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

package com.example.victorbalta.listview03;

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.tareas());
list.setAdapter(adaptador);

//Tarea t = new Tarea("aaa", "11:10");


//adaptador.add(t);

//adaptador.remove(t);

//Tarea t2 = (Tarea) adaptador.getItem(2);


//adaptador.remove(t2);

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

Toast.makeText(getApplicationContext(),
"" + position, 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.listview03.MainActivity">

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

</android.support.constraint.ConstraintLayout>

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

También podría gustarte