setvisiblity메소드를 이용하여 list의 내용을 접었다 폈다 하려는데 아이템 클릭시 아무 반응이 없습니다.

package android.main;

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





public class List6 extends ListActivity{
   
    public void onCreate (Bundle savedInstanceState){
       
        super.onCreate(savedInstanceState);
       
        setListAdapter(new SpeechListAdapter(this));
    }
//   
    protected void onListItemClick(ListView l, View v, int position, long id){
       
        ((SpeechListAdapter)getListAdapter()).toggle(position);
    }
   
   
    private class SpeechListAdapter extends BaseAdapter {
        public SpeechListAdapter (Context context){
            mContext = context;
        }
       
        public int getCount(){
            return mTitles.length;
        }
       
        public Object getItem(int position){
            return position;
        }
       
        public long getItemId(int position){
            return position;
        }
       
        public View getView (int position, View convertView, ViewGroup parent){
            SpeechView sv;
           
            if(convertView == null){
                sv = new SpeechView(mContext, mTitles[position], mDialogue[position], mExpanded[position]);
                //sv = new SpeechView(mContext, mTitles[position], mDialogue[position]);
            }else{
                sv = (SpeechView)convertView;
                sv.setTitle(mTitles[position]);
                sv.setDialogue(mDialogue[position]);
                sv.setExpanded(mExpanded[position]);
            }
            return sv;
        }
       
       
        public void toggle(int position){
            Toast.makeText(List6.this, "1st mExpanded[position]" +mExpanded[position], Toast.LENGTH_SHORT).show();
            mExpanded[position] =  !mExpanded[position];
            Toast.makeText(List6.this, "2nd mExpanded[position]" +mExpanded[position], Toast.LENGTH_SHORT).show();
            notifyDataSetChanged();
        }
       
        private Context mContext;
        private String[] mTitles =
        {
                "aaaa",
                "bbbb",
                "cccc",
                "dddd",
                "eeee",
                "ffff",
                "gggg",
                "hhhh"
        };
        private String[] mDialogue=
        {
                "aaaa",
                "bbbb",
                "cccc",
                "dddd",
                "eeee",
                "ffff",
                "gggg",
                "hhhh",
        };
       
        private boolean[] mExpanded =
        {
                false,
                false,
                false,
                false,
                false,
                false,
                false,
                false
        };
       
    }
   

    private class SpeechView extends LinearLayout{
        public SpeechView (Context context, String title, String dialogue, boolean expanded){
//        public SpeechView (Context context, String title, String dialogue){
           
           
           
            super(context);
           
            this.setOrientation(VERTICAL);
           
            mTitle = new TextView(context);
            mTitle.setText(title);
            addView(mTitle, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
           
            mDialogue = new TextView(context);
            mDialogue.setText(dialogue);
            addView(mDialogue, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
           
           
            mDialogue.setVisibility(expanded ? VISIBLE : GONE );
//            mDialogue.setVisibility(0);
        }
       
        public void setTitle (String title){
            mTitle.setText(title);
        }
        public void setDialogue(String words){
            mDialogue.setText(words);
        }
       
        public void setExpanded(boolean expanded){
//            final int VISIBLE = 0x00000000;
//
//            /**
//             * This view is invisible, but it still takes up space for layout purposes.
//             * Use with {@link #setVisibility}.
//             */
//            final int INVISIBLE = 0x00000004;
//
//            /**
//             * This view is invisible, and it doesn't take any space for layout
//             * purposes. Use with {@link #setVisibility}.
//             */
//            final int GONE = 0x00000008;
//           
           
            mDialogue.setVisibility(expanded ? VISIBLE : GONE);
        }
       
        private TextView mTitle;
        private TextView mDialogue;
       
    }

}



위 소스 내용이구요

빨간부분에서 아이템을 클릭시 extanded가 false일때는 그냥 접어져있다가 아이템 클릭시 toggle로 인하여 false를 true로 바꿔줘서 바로 밑에다가 list의 내용을 뿌리려고 하는데 클릭을 해도 먹통입니다. 위 소스는 책의 내용인데 설명을 보고 다시 몇번을 봐도 안되네요
도와주세요 ㅠ