ListActivity - SimpleAdapter com layout customizado xml

Top  Previous  Next

Tela

 

Java

 

package com.simplesadapter;

 

import java.util.ArrayList;

import java.util.HashMap;

import android.app.ListActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.Toast;

 

public class SimplesAdapterCustomActivity extends ListActivity {

 

  @Override

  public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

       

      ArrayList<HashMap<String,String>> lista = new ArrayList<HashMap<String,String>>();

      // cada item da lista precisa ser um HashMap

      for (int i = 0; i < 10; i++) {

             HashMap<String, String> item = new HashMap<String, String>();

             item.put("nome", "Nome " + i);

             item.put("fone", "Fone " + i);

             lista.add(item);

       }

       

      // usa o SimpleAdapter

      String[] origem = new String[] { "nome", "fone" };

       

      // associa ao layout no xml

      int[] destino = new int[] { R.id.nome, R.id.fone };

       setListAdapter(new SimpleAdapter(this, lista, R.layout.customizado, origem, destino));

   }

 

 @Override

 protected void onListItemClick(ListView l, View v, int position, long id) {

         super.onListItemClick(l, v, position, id);

         

         // pega o item naquela posicao

         Object o = this.getListAdapter().getItem(position);

         String item = o.toString();

         

         // exibe um toast

         Toast.makeText(this, item, Toast.LENGTH_SHORT).show();

 }

}

 

customizado.xml

 

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

   android:orientation="horizontal" >

 

   <TextView

       android:id="@+id/nome"

       android:layout_width="wrap_content"

       android:layout_height="30dp" />

 

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text = " - " />

 

   <TextView

       android:id="@+id/fone"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content" />

 

</LinearLayout>