PASO 1: Tenemos que ir a nuestro activity_main.xml e insertar un texView para el titulo y un listView para mostrar la lista y se vera de la siguiente forma
.
Y el código seria el siguiente:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.androidmorefast.pc.appdiseniolistview.MainActivity" android:orientation="vertical"> <TextView android:text="LISTA DE FRUTAS" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24dp" android:textStyle="bold" android:id="@+id/textView" /> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/lvListado" /> </LinearLayout>
Ahora debemos crear un archivo layout que nos servirá para modelar mejor el diseño de la lista,
la creamos de la siguiente forma: clic sobre layout–new–Layout resource file como se muestra en la siguiente imagen
Este nuevo layout le pondremos de nombre lista_frutas.xml dentro de el ira un texView y una imageView
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" android:orientation="horizontal" > <ImageView android:id="@+id/imgFrutas" android:layout_gravity="center" android:layout_width="48dp" android:layout_height="48dp" /> <TextView android:id="@+id/textView" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25dp" android:text="textView" /> </LinearLayout>
PASO 2: Ahora nos toca trabajar con nuestras clases, así que iremos primero a nuestro MainActivity.java y tendrá el siguiente código:
MainActivity
public class MainActivity extends Activity { ListView lista; Context context; ArrayList prgmNombre; public static int [] prgmImages={R.drawable.banana,R.drawable.coco, R.drawable.manzana,R.drawable.pera,R.drawable.sandia,R.drawable.uva}; public static String [] progNombreLista={"BANANA","COCO++","MANZANA","PERA", "SANDIA","UVA"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context=this; lista=(ListView) findViewById(R.id.lvListado); lista.setAdapter(new GestionarAdapter(this, progNombreLista,prgmImages)); } }
Ahora también debemos crear una nueva clase java a la cual llamaremos GestionarAdapter.java se crea de la siguiente forma como se muestra en la imagen:
y tendrá el siguiente código:
public class GestionarAdapter extends BaseAdapter { String[] resultado; int[] imgId; Context contexto; private static LayoutInflater inflater= null; public GestionarAdapter (MainActivity mainActivity,String[]progNombreLista,int[]progImg) { resultado = progNombreLista; contexto = mainActivity; imgId = progImg; inflater = (LayoutInflater) contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount(){ return resultado.length; } @Override public Object getItem(int posicion) { return posicion; } @Override public long getItemId(int posicion) { return posicion; } public class Holder { TextView tv; ImageView img; } @Override public View getView(final int posicion, View convertView, ViewGroup parent) { // TODO Auto-generated method stub Holder holder=new Holder(); View fila; fila = inflater.inflate(R.layout.lista_frutas, null); holder.tv=(TextView) fila.findViewById(R.id.textView); holder.img=(ImageView) fila.findViewById(R.id.imgFrutas); holder.tv.setText(resultado[posicion]); holder.img.setImageResource(imgId[posicion]); fila.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(contexto, "Seleccionaste "+resultado[posicion], Toast.LENGTH_LONG).show(); } }); return fila; } }
Bien y con eso hemos terminado, espero les ayude a mejorar sus ejercicios y futuros proyectos.
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!
y si en vez del Toast quiero que habrá otra activity como le podría hacer?
Muy bien tutorial y gracias..
excelente amigo mil gracias