버튼을 클릭하면 Dialog가 생성되면서 Dialog에는 ListView와 확인버튼, 취소버튼이 있도록 구성했습니다.
ListView는 CheckBox와 TextView 2개로 구성되어있구요..
여기서 ListView에서 체크박스를 클릭하고 확인버튼을 누르면 체크된 값을 가지고 오고 싶은데요..
어떻게 할 수 있을까요?
그냥 List라면 ListActivity 상속 받아서 CHOICE_MODE_MULTIPLE 이용하면 될것 같은데
제가 하고 싶은거는 Dialog에서 하고 싶은거거든요..
소스 첨부 하니 조언 좀 해주세요~

그리고 체크된 값들이 스크롤 되면서 멋대로 체크가 해제되더라구요..
요것도 질문 찾아보면서 이것저것 해봤는데 안되더라구요.. 요것도 같이 봐주시면 감사하겠습니다~

Main.java

public class Main extends Activity
{
 public void onCreate(Bundle icicle)
 {
  super.onCreate(icicle);
  setContentView(R.layout.newmail);
  
  Button btnList = (Button) findViewById(R.id.btnList);
  btnList.setOnClickListener(new Button.OnClickListener(){
   public void onClick(View view)
   {
    sampleDialog().show();
   }
  });
 )
 
 protected Dialog sampleDialog(String msg)
 {
  return new AddressDialog(this);
 }
}


AddressDialog.java

public class AddressDialog extends Dialog {
 Context context;
 private ArrayList<MyAddress> addList = new ArrayList<MyAddress>();
 
 public AddressDialog(Context context)
 {
  super(context);
  this.context = context;
 }
 
 public void onCreate(Bundle icicle)
 {
  super.onCreate(icicle);
  setContentView(R.layout.addresslist);
  setTitle("주소록");
  
  ListView dialogListView = (ListView) findViewById(R.id.address_listview);
  String[] name = new String[]{"이순신", "홍길동", "김유신", "세종대왕", "윤봉길", "안중근"};
  String[] address = new String[]{"011-145-2542", "010-585-5685", "016-864-6831", "017-555-4241", "019-415-5487", "018-458-5341"};
  for(int i=0; i<name.length; i++)
  {
   addList.add(new MyAddress(name[i], address[i])); 
  }
  
  MyAddressAdapter myAddAdapter = new MyAddressAdapter(context, R.layout.addresslist_item, addList);
  dialogListView.setAdapter(myAddAdapter);
  dialogListView.setItemsCanFocus(true);
  
  // 확인버튼
  Button btnAddSend = (Button) findViewById(R.id.btnAddSend);
  btnAddSend.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View view)
   {
   }
  });
  
  // 취소버튼
  Button btnAddCancle = (Button) findViewById(R.id.btnAddCancle);
  btnAddCancle.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View view)
   {
   }
  });
 }
}


MyAddressAdapter.java

public class MyAddressAdapter extends ArrayAdapter 
{
 private ArrayList<MyAddress> items;
 private Context context;
 
 public MyAddressAdapter(Context context, int textViewResourceId, ArrayList<MyAddress> items)
 {
  super(context, textViewResourceId, items);
  this.context = context;
  this.items = items;
 }
 
 public View getView(int position, View convertView, ViewGroup parent)
 {
  View v = convertView;
  LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  v = vi.inflate(R.layout.addresslist_item, null);
  
  MyAddress ma = items.get(position);
  
  if( ma != null ){
   TextView name = (TextView)v.findViewById(R.id.addresslist_name);
   TextView address = (TextView)v.findViewById(R.id.addresslist_address);
   if( name != null )
   {
    name.setText(ma.getName());
   }
   
   if( address != null )
   {
    address.setText(ma.getAddress()); 
   }
  }
  return v;
 }
}

addresslist.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="6dip" >
    <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="250dip">
     <ListView
   android:id="@+id/address_listview"
         android:layout_width="fill_parent"
         android:layout_height="250dip"
         android:layout_weight="1.0"
     />
    </LinearLayout>
    <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:gravity="center">
     <Button android:id="@+id/btnAddSend"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="선택"/>
     <Button android:id="@+id/btnAddCancle"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="취소"/>
    </LinearLayout>
</LinearLayout>


addresslist.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="6dip" >
    <LinearLayout android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="6dip" >
     <CheckBox
      android:id="@+id/addresslist_chk"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:paddingLeft="5dip"/>
     <TextView
      android:id="@+id/addresslist_name"
      android:layout_width="80dip"
      android:layout_height="wrap_content"
      android:paddingLeft="5dip"
      android:paddingRight="15dip"
      android:textSize="15dip"
      android:text="EYKim"/> 
     <TextView
      android:id="@+id/addresslist_address"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:paddingLeft="5dip"
      android:textSize="15dip"
      android:text="autumnus"/> 
    </LinearLayout>
</LinearLayout>

안드로이드 펍 Q&A 게시판을 비롯해서 많은 분들 블로그도 보고 책도 보고 했는데도 잘 모르겠어서 여쭙는거니까
보시고 많이 가르쳐 주세요~ ^^