I have read copious posts on this, but no solution.  After using MAT
extensively on an ApiDemo list view sample, I am ABSOLUTELY convinced
that the ListView/ListActivity is leaking memory.


import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class TmpTestActivity extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new MyListAdapter(this));
    }

    @Override
    protected void onDestroy()
    {
        super.onDestroy();
        final MyListAdapter mla =
(MyListAdapter)getListView().getAdapter();
        mla.onDestroy();

        // here I tried setting the activity's contained ListView's
onItemClickListener to null

        getListView().setOnItemClickListener(null);
        getListView().focusableViewAvailable(null);
    }

    private static class MyListAdapter extends BaseAdapter {

        public void onDestroy()
        {
                mContext = null;
        }

        public MyListAdapter(Context context) {
            mContext = context;
        }

        public int getCount() {
            return mStrings.length;
        }

        @Override
        public boolean areAllItemsEnabled() {
            return false;
        }

        @Override
        public boolean isEnabled(int position) {
            return !mStrings[position].startsWith("-");
        }

        public Object getItem(int position) {
            return position;
        }

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

        public View getView(int position, View convertView, ViewGroup
parent) {
            TextView tv;
            if (convertView == null) {
                tv = (TextView) LayoutInflater.from(mContext).inflate(
 
android.R.layout.simple_expandable_list_item_1, parent, false);
            } else {
                tv = (TextView) convertView;
            }
            tv.setText(mStrings[position]);
            return tv;
        }

        private Context mContext;

        private String[] mStrings = {
                "----------",
                "----------",
                "Abbaye de Belloc",
                "Abbaye du Mont des Cats",
                "Abertam",
                "----------",
                "Abondance",
                "----------",
                "Ackawi",
                "Acorn",
                "Adelost",
                "Affidelice au Chablis",
                "Afuega'l Pitu",
                "Airag",
                "----------",
                "Airedale",
                "Aisy Cendre",
                "----------",
                "Allgauer Emmentaler",
                "Alverca",
                "Ambert",
                "American Cheese",
                "Ami du Chambertin",
                "----------",
                "----------",
                "Anejo Enchilado",
                "Anneau du Vic-Bilh",
                "Anthoriro",
                "----------",
                "----------"
        };
    }
}

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

Reply via email to