Skip to content

Instantly share code, notes, and snippets.

@JonaxelN
Created December 29, 2014 20:57
Show Gist options
  • Select an option

  • Save JonaxelN/90fa4eee97e7d17b1793 to your computer and use it in GitHub Desktop.

Select an option

Save JonaxelN/90fa4eee97e7d17b1793 to your computer and use it in GitHub Desktop.
CustomClientAdapter
package com.jonaxel.notaliada.adapter;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.jonaxel.notaliada.R;
import com.jonaxel.notaliada.model.Cliente;
import java.util.ArrayList;
public class CustomClienteAdapter extends BaseAdapter {
private ArrayList<Cliente> miCliente = new ArrayList<>();
private Cliente cliente;
private static final int TYPE_ITEM = 0;
private static final int TYPE_SEPARATOR = 1;
private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 1;
private LayoutInflater inflater;
public CustomClienteAdapter(Context context, ArrayList<Cliente> clientes) {
//super(context, R.layout.item_vista, clientes);
miCliente = clientes;
//Create inflater
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
//the list can have 2 layout inflater
@Override
public int getViewTypeCount() {
return TYPE_MAX_COUNT;
}
//if return 1 it means that is a header
@Override
public int getItemViewType(int position) {
return (miCliente.get(position).isHeader()) ? TYPE_SEPARATOR : TYPE_ITEM;
}
@Override
public int getCount() {
return miCliente.size();
}
@Override
public String getItem(int position) {
return miCliente.get(position).toString();
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public boolean isEnabled(int position) {
return !miCliente.get(position).isHeader();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder; // view lookup cache stored in tag
int type = getItemViewType(position);
System.out.println("getView " + position + " " + convertView + " type = " + type);
View itemView = convertView;
//Find the client to work with
cliente = miCliente.get(position);
// Check if an existing view is being reused, otherwise inflate the view
if (itemView == null) {
//Create the ViewHolder
viewHolder = new ViewHolder();
//if it's one inflate the view item_vista (not header)
switch(type) {
case TYPE_ITEM:
itemView = inflater.inflate(R.layout.item_vista, parent, false);
//item_vista.xml
viewHolder.nombreCliente = (TextView) itemView.findViewById(R.id.cliente);
viewHolder.hora = (TextView) itemView.findViewById(R.id.hora);
viewHolder.duracion = (TextView) itemView.findViewById(R.id.direccion);
break;
case TYPE_SEPARATOR:
itemView = inflater.inflate(R.layout.header_item, parent, false);
//header_item.xml
viewHolder.dia = (TextView) itemView.findViewById(R.id.day);
viewHolder.fecha = (TextView) itemView.findViewById(R.id.date);
break;
}
itemView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder) itemView.getTag();
}
switch (type) {
case TYPE_ITEM:
// Populate the data into the template view using the data object
viewHolder.nombreCliente.setText(cliente.getNombreCliente());
viewHolder.hora.setText("" + cliente.getHora());
viewHolder.duracion.setText("" + cliente.getDuracion());
break;
case TYPE_SEPARATOR:
viewHolder.dia.setText(cliente.getDia());
viewHolder.fecha.setText(cliente.getFecha());
break;
default:
Log.d("ERROR switch", "HUBO UN ERROR EN EL SWITCH");
}
return itemView;
}
private static class ViewHolder {
TextView nombreCliente, hora, duracion, dia, fecha;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment