Created
December 29, 2014 20:57
-
-
Save JonaxelN/90fa4eee97e7d17b1793 to your computer and use it in GitHub Desktop.
CustomClientAdapter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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