주소록그룹을 가지고와서
ListView로 나타내는 부분입니다.
SimpleCursorAdapter를 이용하면 그룹명이 나오는데
ArrayAdapter를 사용하면 왜 안나오는 것일까요.. 궁금합니다. ㅜ


import java.util.ArrayList;

import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class GroupActivity extends ListActivity {   
 
 private static ArrayList<Group> groupList;
 private GroupList groupAdapter;
 
 /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.address);       
        groupList = new ArrayList<Group>();
        //ListView lv = (ListView)findViewById(R.id.listAddrList);
        getGroupCursor(this);
        groupAdapter = new GroupList(this, R.layout.addresschildview, groupList);
        setListAdapter(groupAdapter);
    }
    private static final String[] GROUP = new String[]{     
     ContactsContract.Groups._ID,
     ContactsContract.Groups.TITLE,     
    };
      /** 
     *그룹가지고 와서  ArrayList에 넣기.
     * @param context
     * @return
     */
    private void getGroupCursor(Context context){
     Cursor cursor = context.getContentResolver().query(ContactsContract.Groups.CONTENT_URI, new String[]{ContactsContract.Groups.TITLE,},
          ContactsContract.Groups.DELETED + " = 0" + " AND " + ContactsContract.Groups.GROUP_VISIBLE + " = 1",
          null, null);
     int id = cursor.getColumnIndexOrThrow(ContactsContract.Groups._ID);
     int title = cursor.getColumnIndexOrThrow(ContactsContract.Groups.TITLE);
     Log.i("GETGROUPCURSOR", "**CURSOR BEGIN***" +cursor.getCount()+" " + cursor.getColumnCount());
     if(cursor.moveToFirst()){
      do{
       int groupId = cursor.getInt(id);
       String groupTitle = cursor.getString(title);
       
       groupList.add(new Group(groupId, groupTitle));
      }while(cursor.moveToNext());
     }   
     
    }
    /**
     * 그룹별 카운트 얻기
     * @param context
     * @param mcursor
     * @return
     */
    private Cursor getGroupCount(Context context, Cursor mcursor) {
     Cursor cursor = context.getContentResolver().query(ContactsContract.Groups.CONTENT_SUMMARY_URI,
       new String[]{ContactsContract.Groups.SUMMARY_COUNT}, ContactsContract.Groups._ID + " = " + mcursor.getLong(0), null, null);  
  
  return cursor;     
 }
   
    /**
     * 그룹ID별 카운팅수
     * @param _context
     * @param _Cursor
     * @return
     */
    private int getGroupCounts(Context _context, Cursor _Cursor){
     int count = 0;
     Cursor cursor = _context.getContentResolver().query(ContactsContract.Groups.CONTENT_SUMMARY_URI,
          new String[]{ContactsContract.Groups.SUMMARY_COUNT},
          ContactsContract.Groups._ID + " = " + _Cursor.getLong(0), null, null);
     if(cursor.moveToFirst()){
      count = cursor.getInt(0);      
     }
     return count;
    }
    /**
     * ArrayAdapter 구현 클래스
     *
     */
 public class GroupList extends ArrayAdapter<Group>{
  private ArrayList<Group> items;

  
  public GroupList(Context context, int textViewResourceId,
    ArrayList<Group> item) {
   super(context, textViewResourceId, item);
   this.items = item;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   
   View v = convertView;
   if(v == null){
    LayoutInflater vi =
     (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
    vi.inflate(R.layout.addresschildview, null);
   }
   
   Group group = items.get(position);  
     
   if(group != null){
    TextView groupId = (TextView)v.findViewById(R.id.txtAddressChildViewGroupId);
    TextView groupTitle = (TextView)v.findViewById(R.id.txtAddressChildViewGroupTitle);
    if(groupId != null){
     groupId.setText(group.getId());     
    }
    if(groupTitle != null){
     groupTitle.setText(group.getGroupTitle());
    }
   } 
   
   return v;
  }
  
  
     
    }     
}