package fr.tvbarthel.apps.sayitfromthesky.adapters; import android.content.Context; import android.database.Cursor; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CursorAdapter; import android.widget.TextView; import java.text.DateFormat; import java.util.Locale; import butterknife.ButterKnife; import butterknife.InjectView; import fr.tvbarthel.apps.sayitfromthesky.R; import fr.tvbarthel.apps.sayitfromthesky.helpers.CursorHelper; import fr.tvbarthel.apps.sayitfromthesky.models.Drawing; /** * A simple {@link android.widget.ArrayAdapter} for {@link fr.tvbarthel.apps.sayitfromthesky.models.Drawing}. */ public class DrawingAdapter extends CursorAdapter { private LayoutInflater mInflater; private DateFormat mDateFormat; public DrawingAdapter(Context context) { super(context, null, false); mInflater = LayoutInflater.from(context); mDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.getDefault()); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { final View view = mInflater.inflate(R.layout.drawing_entry, parent, false); final ViewHolder holder = new ViewHolder(view); view.setTag(holder); bind(holder, cursor); return view; } @Override public void bindView(View view, Context context, Cursor cursor) { bind((ViewHolder) view.getTag(), cursor); } private void bind(ViewHolder holder, Cursor cursor) { final Drawing drawing = CursorHelper.cursorToDrawing(cursor); holder.title.setText(drawing.getTitle()); holder.creationTime.setText(mDateFormat.format(drawing.getCreationTimeInMillis())); } static class ViewHolder { @InjectView(R.id.drawing_entry_title) TextView title; @InjectView(R.id.drawing_entry_creation_time) TextView creationTime; public ViewHolder(View view) { ButterKnife.inject(this, view); } } }