package com.ptrprograms.staggeredgridview.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.etsy.android.grid.util.DynamicHeightImageView;
import com.ptrprograms.staggeredgridview.R;
import com.ptrprograms.staggeredgridview.models.GridItem;
import com.squareup.picasso.Picasso;
/**
* Created by PaulTR on 5/12/14.
*/
public class StaggeredGridAdapter extends ArrayAdapter<GridItem> {
public StaggeredGridAdapter( Context context ) {
this( context, 0 );
}
public StaggeredGridAdapter(Context context, int resource) {
super(context, resource);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
StaggeredViewHolder holder;
if( convertView == null ) {
convertView = LayoutInflater.from(getContext()).inflate( R.layout.view_staggered_item, parent, false );
holder = new StaggeredViewHolder();
holder.imageView = (DynamicHeightImageView) convertView.findViewById( R.id.dynamic_image_view );
holder.titleTextView = (TextView) convertView.findViewById( R.id.title_text_view );
holder.subtitleTextView = (TextView) convertView.findViewById( R.id.subtitle_text_view );
convertView.setTag( holder );
} else {
holder = (StaggeredViewHolder) convertView.getTag();
}
Picasso.with(getContext())
.load( getItem( position ).getUrl() )
.into( holder.imageView );
holder.titleTextView.setText( getItem( position ).getTitle() );
holder.subtitleTextView.setText( getItem( position ).getSubtitle() );
holder.imageView.setHeightRatio( getItem( position ).getRatio() );
final String itemText = holder.titleTextView.getText().toString();
convertView.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText( getContext(), itemText, Toast.LENGTH_SHORT ).show();
}
});
return convertView;
}
private class StaggeredViewHolder {
public DynamicHeightImageView imageView;
public TextView titleTextView;
public TextView subtitleTextView;
}
}