diff options
Diffstat (limited to 'libraries/StickyListHeaders/sample/src/se/emilsjolander/stickylistheaders/TestBaseAdapter.java')
-rw-r--r-- | libraries/StickyListHeaders/sample/src/se/emilsjolander/stickylistheaders/TestBaseAdapter.java | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/libraries/StickyListHeaders/sample/src/se/emilsjolander/stickylistheaders/TestBaseAdapter.java b/libraries/StickyListHeaders/sample/src/se/emilsjolander/stickylistheaders/TestBaseAdapter.java deleted file mode 100644 index 777b7bd57..000000000 --- a/libraries/StickyListHeaders/sample/src/se/emilsjolander/stickylistheaders/TestBaseAdapter.java +++ /dev/null @@ -1,169 +0,0 @@ -package se.emilsjolander.stickylistheaders; - -import java.util.ArrayList; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.SectionIndexer; -import android.widget.TextView; - -/** - * @author Emil Sjölander - */ -public class TestBaseAdapter extends BaseAdapter implements - StickyListHeadersAdapter, SectionIndexer { - - private final Context mContext; - private String[] mCountries; - private int[] mSectionIndices; - private Character[] mSectionLetters; - private LayoutInflater mInflater; - - public TestBaseAdapter(Context context) { - mContext = context; - mInflater = LayoutInflater.from(context); - mCountries = context.getResources().getStringArray(R.array.countries); - mSectionIndices = getSectionIndices(); - mSectionLetters = getSectionLetters(); - } - - private int[] getSectionIndices() { - ArrayList<Integer> sectionIndices = new ArrayList<Integer>(); - char lastFirstChar = mCountries[0].charAt(0); - sectionIndices.add(0); - for (int i = 1; i < mCountries.length; i++) { - if (mCountries[i].charAt(0) != lastFirstChar) { - lastFirstChar = mCountries[i].charAt(0); - sectionIndices.add(i); - } - } - int[] sections = new int[sectionIndices.size()]; - for (int i = 0; i < sectionIndices.size(); i++) { - sections[i] = sectionIndices.get(i); - } - return sections; - } - - private Character[] getSectionLetters() { - Character[] letters = new Character[mSectionIndices.length]; - for (int i = 0; i < mSectionIndices.length; i++) { - letters[i] = mCountries[mSectionIndices[i]].charAt(0); - } - return letters; - } - - @Override - public int getCount() { - return mCountries.length; - } - - @Override - public Object getItem(int position) { - return mCountries[position]; - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder; - - if (convertView == null) { - holder = new ViewHolder(); - convertView = mInflater.inflate(R.layout.test_list_item_layout, parent, false); - holder.text = (TextView) convertView.findViewById(R.id.text); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - holder.text.setText(mCountries[position]); - - return convertView; - } - - @Override - public View getHeaderView(int position, View convertView, ViewGroup parent) { - HeaderViewHolder holder; - - if (convertView == null) { - holder = new HeaderViewHolder(); - convertView = mInflater.inflate(R.layout.header, parent, false); - holder.text = (TextView) convertView.findViewById(R.id.text1); - convertView.setTag(holder); - } else { - holder = (HeaderViewHolder) convertView.getTag(); - } - - // set header text as first char in name - CharSequence headerChar = mCountries[position].subSequence(0, 1); - holder.text.setText(headerChar); - - return convertView; - } - - /** - * Remember that these have to be static, postion=1 should always return - * the same Id that is. - */ - @Override - public long getHeaderId(int position) { - // return the first character of the country as ID because this is what - // headers are based upon - return mCountries[position].subSequence(0, 1).charAt(0); - } - - @Override - public int getPositionForSection(int section) { - if (section >= mSectionIndices.length) { - section = mSectionIndices.length - 1; - } else if (section < 0) { - section = 0; - } - return mSectionIndices[section]; - } - - @Override - public int getSectionForPosition(int position) { - for (int i = 0; i < mSectionIndices.length; i++) { - if (position < mSectionIndices[i]) { - return i - 1; - } - } - return mSectionIndices.length - 1; - } - - @Override - public Object[] getSections() { - return mSectionLetters; - } - - public void clear() { - mCountries = new String[0]; - mSectionIndices = new int[0]; - mSectionLetters = new Character[0]; - notifyDataSetChanged(); - } - - public void restore() { - mCountries = mContext.getResources().getStringArray(R.array.countries); - mSectionIndices = getSectionIndices(); - mSectionLetters = getSectionLetters(); - notifyDataSetChanged(); - } - - class HeaderViewHolder { - TextView text; - } - - class ViewHolder { - TextView text; - } - -} |