I need to call onItemClickListener from my activity and have it return
the text of the item.  I am having a hard time wrapping my head around
this.  I have tried several examples but can't seem to pull it off.  I
was wondering if someone could lend an idea on what I'm doing wrong.

Thanks,
Matt

import java.util.LinkedHashMap;
import java.util.Map;

import android.content.Context;
import android.database.DataSetObserver;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.SimpleAdapter.ViewBinder;

public class Separated_List_Adapter extends BaseAdapter {
                public final Map<String,Adapter> sections = new
LinkedHashMap<String,Adapter>();
            public final ArrayAdapter<String> headers;
            public final static int TYPE_SECTION_HEADER = 0;

            public Separated_List_Adapter(Context context) {
                headers = new ArrayAdapter<String>(context,
R.layout.list_header);
            }

            public void addSection(String section, Adapter adapter) {
                this.headers.add(section);
                this.sections.put(section, adapter);
            }

            public Object getItem(int position) {
                for(Object section : this.sections.keySet()) {
                    Adapter adapter = sections.get(section);
                    int size = adapter.getCount() + 1;

                    // check if position inside this section
                    if(position == 0) return section;
                    if(position < size) return adapter.getItem(position -
1);

                    // otherwise jump into next section
                    position -= size;
                }
                return null;
            }

            public int getCount() {
                // total together all sections, plus one for each section
header
                int total = 0;
                for(Adapter adapter : this.sections.values())
                    total += adapter.getCount() + 1;
                return total;
            }

            public int getViewTypeCount() {
                // assume that headers count as one, then total all
sections
                int total = 1;
                for(Adapter adapter : this.sections.values())
                    total += adapter.getViewTypeCount();
                return total;
            }

            public int getItemViewType(int position) {
                int type = 1;
                for(Object section : this.sections.keySet()) {
                    Adapter adapter = sections.get(section);
                    int size = adapter.getCount() + 1;

                    // check if position inside this section
                    if(position == 0) return TYPE_SECTION_HEADER;
                    if(position < size) return type +
adapter.getItemViewType(position - 1);

                    // otherwise jump into next section
                    position -= size;
                    type += adapter.getViewTypeCount();
                }
                return -1;
            }

            public boolean areAllItemsSelectable() {
                return false;
            }

            public boolean isEnabled(int position) {
                return (getItemViewType(position) != TYPE_SECTION_HEADER);
            }
           @Override
            public View getView(int position, View convertView, ViewGroup
parent) {
                int sectionnum = 0;
                for(Object section : this.sections.keySet()) {
                    Adapter adapter = sections.get(section);
                    int size = adapter.getCount() + 1;

                    // check if position inside this section
                    if(position == 0) return headers.getView(sectionnum,
convertView, parent);
                    if(position < size) return adapter.getView(position - 1,
convertView, parent);

                    // otherwise jump into next section
                    position -= size;
                    sectionnum++;
                }
                return null;
            }

            @Override
            public long getItemId(int position) {
                return position;
            }
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to