ACTION_PICK을 이용해서 주소록을 가져왔습니다.

 

이름과 전화번호로 가져왔는데요

 

여기에 추가적으로 체크박스와 하단부분에 버튼을 추가하고싶습니다.

 

그래서 리스트뷰에 연결을해서 커스텀어뎁터를 통해서 뿌려주려고 하는데요.. 실행을 해보면 그냥 이름과 전화번호만나오네요..

 

ACTION_PICK을 이용하면 커스텀리스트뷰를 구성할수 없는건가요..??

 

이미지와 코딩은 이렇습니다.

 

C2011-08-23 11.39.44.jpg

 

Intent intent = new Intent(Intent.ACTION_PICK);
  intent.setData(ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
  startActivity(intent);

 

@Override
 protected void onActivityResult(int requestCode,int resultCode,Intent data){
  if(resultCode == RESULT_OK)
  {
    Cursor contactCursor = getContentResolver().query(data.getData(),
      new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
     ContactsContract.CommonDataKinds.Phone.NUMBER}, null, null, null);
    contactCursor.moveToFirst();
    contacts = new ArrayList<String>();
    if (contactCursor.moveToFirst()) {
     do {
      contacts.add(contactCursor.getString(0) + ":" + contactCursor.getString(1));
     } while (contactCursor.moveToNext());
    }

    // Cursor를 다 사용했을경우 colse를 해야한다.
    if (contactCursor != null) {
     contactCursor.close();
     contactCursor = null;
    }    
  }
  super.onActivityResult(requestCode, resultCode, data);
 }

 

==== 이름과 전화번호를 contacts ArrayList<String> 에 담아서 어뎁터에서 구현합니다. ======


    어뎁터부분

public class ContactAdapter extends BaseAdapter {
 
 protected static CheckBox itemcheck;
 private List<String> contacts;
 
 public ContactAdapter(Context context, int layout, List<String> contacts){
  this.contacts = contacts;
 }
 
 public int getCount() {
  return this.contacts.size();  
 }

 public Object getItem(int position) {  
  return contacts.get(position);
 }

 public long getItemId(int position) {
  return position;
 }
 
 public View getView(int position, View convertView, ViewGroup parent) {
  
  ViewHolder holder;
  
  if(convertView == null) {
   LayoutInflater inflater = LayoutInflater.from(parent.getContext());
   convertView = inflater.inflate(R.layout.phonelist, parent, false);
   holder = new ViewHolder();
   holder.checkBox = (CheckBox) convertView.findViewById(R.id.itemcheck);
   holder.contactNameTextView = (TextView) convertView.findViewById(R.id.phonename);
   convertView.setTag(holder);    
   
  } else {
   holder = (ViewHolder) convertView.getTag();
  }  
  
  String contact = contacts.get(position);
  holder.contactNameTextView.setText(contact);
  holder.checkBox.setChecked(((ListView)parent).isItemChecked(position));
  holder.checkBox.setFocusable(false);
  holder.checkBox.setClickable(false);
  return convertView;
 }
 
 static class ViewHolder {
  CheckBox checkBox;
  TextView contactNameTextView;  
  
 }
}