package net.sgoliver.android.listviewopt;
import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
private TextView lblEtiqueta;
private ListView lstOpciones;
private Titular[] datos = new Titular[25];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(int i=1; i<=25; i++)
datos[i-1] = new Titular("T�tulo " + i, "Subt�tulo largo " + i);
AdaptadorTitulares adaptador =
new AdaptadorTitulares(this);
lblEtiqueta = (TextView)findViewById(R.id.LblEtiqueta);
lstOpciones = (ListView)findViewById(R.id.LstOpciones);
lstOpciones.setAdapter(adaptador);
lstOpciones.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
//Alternativa 1:
String opcionSeleccionada =
((Titular)a.getAdapter().getItem(position)).getTitulo();
//Alternativa 2:
//String opcionSeleccionada =
// ((TextView)v.findViewById(R.id.LblTitulo))
// .getText().toString();
lblEtiqueta.setText("Opci�n seleccionada: " + opcionSeleccionada);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class AdaptadorTitulares extends ArrayAdapter<Titular> {
Activity context;
AdaptadorTitulares(Activity context) {
super(context, R.layout.listitem_titular, datos);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent)
{
View item = convertView;
ViewHolder holder;
if(item == null)
{
LayoutInflater inflater = context.getLayoutInflater();
item = inflater.inflate(R.layout.listitem_titular, null);
holder = new ViewHolder();
holder.titulo = (TextView)item.findViewById(R.id.LblTitulo);
holder.subtitulo = (TextView)item.findViewById(R.id.LblSubTitulo);
item.setTag(holder);
}
else
{
holder = (ViewHolder)item.getTag();
}
holder.titulo.setText(datos[position].getTitulo());
holder.subtitulo.setText(datos[position].getSubtitulo());
return(item);
}
}
static class ViewHolder {
TextView titulo;
TextView subtitulo;
}
}