package net.jessechen.utils; import java.util.List; import net.jessechen.models.AlarmModel; import net.jessechen.friendlyalarmclock.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.TextView; public class AlarmAdapter extends ArrayAdapter<AlarmModel> { ViewHolder mHolder; List<AlarmModel> mAlarms; public AlarmAdapter(Context context, int textViewResourceId, List<AlarmModel> objects) { super(context, textViewResourceId, objects); mAlarms = objects; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = (LayoutInflater) getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.alarm_item, parent, false); mHolder = new ViewHolder(); mHolder.enabled = (CheckBox) convertView.findViewById(R.id.enabled); mHolder.timeDisplay = (TextView) convertView .findViewById(R.id.timeDisplay); mHolder.daysOfWeek = (TextView) convertView .findViewById(R.id.daysOfWeek); mHolder.label = (TextView) convertView.findViewById(R.id.label); convertView.setTag(mHolder); } else { mHolder = (ViewHolder) convertView.getTag(); } // Fill in the view AlarmModel alarm = mAlarms.get(position); if (alarm != null) { mHolder.enabled.setChecked(alarm.isEnabled()); mHolder.timeDisplay.setText(alarm.getTimeText()); mHolder.daysOfWeek.setText(alarm.getDaysText()); } return convertView; } static class ViewHolder { CheckBox enabled; TextView timeDisplay; TextView daysOfWeek; TextView label; } }