package com.vt.vthacks.view; import android.widget.RelativeLayout; import android.widget.TextView; import com.vt.vthacks.R; import android.view.ViewGroup; import android.view.View; import java.util.List; import android.view.LayoutInflater; import android.content.Context; import com.vt.vthacks.model.IAnnouncement; import android.widget.ArrayAdapter; // ------------------------------------------------------------------------- /** * * This is the class that handles the Adapter that will be used in the * Announcement Activity * * @author Brandon Potts * @version Mar 22, 2014 */ public class AnnouncementAdapter extends ArrayAdapter<IAnnouncement> { private LayoutInflater mInflater; // ---------------------------------------------------------- /** * Create a new AnnouncementAdapter object. * @param context * @param objects */ public AnnouncementAdapter(Context context, List<IAnnouncement> objects) { super(context, 0, objects); this.mInflater = LayoutInflater.from(context); } @Override public View getView(int position, View convertView, ViewGroup parent) { final IAnnouncement announcement = getItem(position); AnnouncementItemViewHolder holder; if(convertView == null) { RelativeLayout container = (RelativeLayout)mInflater.inflate(R.layout.announcements_list_row, parent , false); holder = AnnouncementItemViewHolder.create(container); container.setTag(holder); } else { holder = (AnnouncementItemViewHolder)convertView.getTag(); } holder.titleTextView.setText(announcement.getTitle()); holder.descripTextView.setText(announcement.getDescription()); holder.timeTextView.setText(announcement.getTime()); return holder.rootView; } /** * // ------------------------------------------------------------------------- /** * Class represents the object that holds Announcement data * * @author Brandon Potts * @version Apr 9, 2014 */ private static class AnnouncementItemViewHolder { public final RelativeLayout rootView; public final TextView titleTextView; public final TextView descripTextView; public final TextView timeTextView; /** * Creates an AnnouncementItemViewHolder object */ private AnnouncementItemViewHolder(RelativeLayout rootView, TextView titleTextView, TextView descripTextView , TextView timeTextView) { this.rootView = rootView; this.titleTextView = titleTextView; this.descripTextView = descripTextView; this.timeTextView = timeTextView; } /** * Returns a new AnnouncementItemViewHolder * * @param rootView * * @return new AnnouncementItemViewHolder object * */ public static AnnouncementItemViewHolder create(RelativeLayout rootView) { TextView titleTextView = (TextView)rootView.findViewById(R.id.announcement_title); TextView descripTextView = (TextView)rootView.findViewById(R.id.announcement_description); TextView timeTextView = (TextView)rootView.findViewById(R.id.announcement_time); return new AnnouncementItemViewHolder(rootView , titleTextView , descripTextView , timeTextView); } } }