package com.myMinistry.adapters; import java.util.ArrayList; import com.myMinistry.R; import com.myMinistry.model.HouseholderForTime; import com.myMinistry.model.QuickLiterature; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.TextView; public class TimeHouseholderAdapter extends ArrayAdapter<HouseholderForTime> { private static final int LAYOUT_ID = R.layout.li_time_editor; private Context context; private ArrayList<HouseholderForTime> mylist; private StringBuilder mystring; private int emptyHHPosition = -1; public TimeHouseholderAdapter(Context context, ArrayList<HouseholderForTime> _mylist) { super(context, LAYOUT_ID, _mylist); this.context = context; mylist = _mylist; } class ViewHolder { TextView text_householder; TextView text_publications; TextView text_notes; LinearLayout linlay; } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; ViewHolder holder = null; mystring = new StringBuilder(); if(row == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); row = inflater.inflate(LAYOUT_ID, parent, false); holder = new ViewHolder(); holder.linlay = (LinearLayout)row.findViewById(R.id.linlay); holder.text_householder = (TextView)row.findViewById(R.id.text_householder); holder.text_publications = (TextView)row.findViewById(R.id.text_publications); holder.text_notes = (TextView)row.findViewById(R.id.text_notes); row.setTag(holder); } else { holder = (ViewHolder)row.getTag(); } HouseholderForTime item = mylist.get(position); /** Set householder name to be displayed */ if(item.toString() != null && item.toString().length() > 0) { holder.text_householder.setText(item.toString()); holder.text_householder.setVisibility(View.VISIBLE); } else holder.text_householder.setVisibility(View.GONE); /** Set the publications selected to be displayed */ if(item.getID() != 0 || emptyHHPosition == -1 || emptyHHPosition == position) { if(item.getID() == 0) emptyHHPosition = position; ArrayList<QuickLiterature> litList = mylist.get(position).getLit(); if(litList != null) { for(int j = 0;j < litList.size();j++) { if(j > 0) mystring.append("\n"); mystring.append("(").append(litList.get(j).getCount()).append(") ").append(litList.get(j).toString()); } } } if(mystring.length() > 0) { holder.text_publications.setText(mystring.toString()); holder.text_publications.setVisibility(View.VISIBLE); mystring = new StringBuilder(); } else holder.text_publications.setVisibility(View.GONE); /** Set the notes to be displayed */ if(item.getNotes() != null && item.getNotes().length() > 0 && (item.getID() != 0 || emptyHHPosition == -1 || emptyHHPosition == position)) { mystring.append(context.getResources().getString(R.string.form_notes) + ": " + item.getNotes()); holder.text_notes.setText(mystring.toString()); holder.text_notes.setVisibility(View.VISIBLE); } else holder.text_notes.setVisibility(View.GONE); return row; } }