package com.grouplist.Parse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
@SuppressWarnings("unchecked")
public class GroupSimpleAdapter extends SimpleAdapter
{
    private List<? extends Map<String, ?>> datas;
    
    private HashMap<String, String> _data;
    private String[] _from;
    private int[] _to;
    
    private int _linearID;
    
    private static final int GROUP_START = 0;
    private static final int GROUP_CONTENT = 1;
    
    public GroupSimpleAdapter(Context context,List<? extends Map<String, ?>> data, int resource, String[] from, int[] to, int linear)
    {
        super(context, data, resource, from, to);
        
        datas = data;
        _from = from;
        _to = to;
        _linearID = linear;
        // TODO Auto-generated constructor stub
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        // TODO Auto-generated method stub
        View view = super.getView(position, convertView, parent);
        
        _data = (HashMap<String, String>) datas.get(position);
        int viewType;
        
        LinearLayout groupTitle = (LinearLayout) view.findViewById(_linearID);
        
        if (position == 0)
        {
            viewType = GROUP_START;
        }
        else
        {
            boolean newGroup = isNewGroupTitle(position);
            
            if (newGroup)
                viewType = GROUP_START;
            else
                viewType = GROUP_CONTENT;
        }
        
        if (viewType == GROUP_START)
        {
            groupTitle.setVisibility(View.VISIBLE); //보이기
        }else{
            groupTitle.setVisibility(View.GONE); //가리기
        }
        
        
        //타이틀 날짜별로
        for(int i = 0; i < _to.length; i++)
        {
            ((TextView) view.findViewById(_to[i])).setText(_data.get(_from[i]));
        }
        
        return view;
    }
    
    private boolean isNewGroupTitle(int position)
    {
        //현재의 타이틀을 판단
        _data = (HashMap<String, String>) datas.get(position);
        String nowDate = _data.get(_from[0]);
        
        //현재 이전의 타이틀을 판단
        _data = (HashMap<String, String>) datas.get(position - 1);
        String preDate = _data.get(_from[0]);
        
        _data = (HashMap<String, String>) datas.get(position);
        
        if (!nowDate.equals(preDate)) { return true; }
        
        return false;
    }
    
}
 
로그켓입니다
11-25 00:41:11.969: E/AndroidRuntime(2736): FATAL EXCEPTION: main
11-25 00:41:11.969: E/AndroidRuntime(2736): java.lang.ClassCastException: android.widget.RelativeLayout
11-25 00:41:11.969: E/AndroidRuntime(2736):  at com.test.co.parse.GroupSimpleAdapter.getView(GroupSimpleAdapter.java:49)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.AbsListView.obtainView(AbsListView.java:1430)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.ListView.makeAndAddView(ListView.java:1749)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.ListView.fillDown(ListView.java:670)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.ListView.fillFromTop(ListView.java:727)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.ListView.layoutChildren(ListView.java:1588)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.AbsListView.onLayout(AbsListView.java:1260)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.View.layout(View.java:7182)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.View.layout(View.java:7182)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.View.layout(View.java:7182)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.View.layout(View.java:7182)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.View.layout(View.java:7182)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1142)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1861)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.os.Looper.loop(Looper.java:130)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at android.app.ActivityThread.main(ActivityThread.java:3683)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at java.lang.reflect.Method.invokeNative(Native Method)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at java.lang.reflect.Method.invoke(Method.java:507)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
11-25 00:41:11.969: E/AndroidRuntime(2736):  at dalvik.system.NativeStart.main(Native Method)
 
머가문제인가요 ㅠㅠㅠ