¿Cómo enviar los mensajes seleccionados utilizando la casilla de verificación a un no particular?

Primero, voy a buscar todos los mensajes a mi aplicación para almacenarlos en la vista de lista y luegoEstoy seleccionando mensajes de la vista de lista usando casillas de verificación y deseoenvíe estos sms seleccionados a un solo número que esté predefinido y deseouse los sms seleccionados como cuerpo de mensaje para enviarlos al no. pero elproblema es que elel mensaje enviado contiene los mensajes completos de listview, no el seleccionado. Asi que por favor alguiencorrigeme donde me equivoco en el codigo como deseoenviar solo los mensajes seleccionados, no los elementos de la vista de lista completa (mensajes)

public class MainActivity extends Activity implements OnItemClickListener, OnClickListener{

Button send;
ListView listViewSMS;
Cursor cursor;
SMSListAdapter smsListAdapter;
Context context;
SharedPreferences prefs=null;
ArrayAdapter<SMSListModel> adapter;
List<SMSListModel> list = new ArrayList<SMSListModel>();
TextView textViewSMSSender, textViewSMSBody;
int i;
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    context=this;
    listViewSMS=(ListView)findViewById(R.id.lvSMS);

    send = (Button)findViewById(R.id.btnproperty);
    send.setOnClickListener(this);

    textViewSMSSender=(TextView)findViewById(R.id.tvSMSSend);
    textViewSMSBody=(TextView)findViewById(R.id.tvSMSBody);

    cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null);

    smsListAdapter = new SMSListAdapter(this,getModel());
    listViewSMS.setAdapter(smsListAdapter);
    listViewSMS.setOnItemClickListener(this);


}
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) {
    TextView label = (TextView) v.getTag(R.id.tvSMSSend);
    CheckBox checkbox = (CheckBox) v.getTag(R.id.cbSelect);
    Toast.makeText(v.getContext(), label.getText().toString()+" "+isCheckedOrNot(checkbox), Toast.LENGTH_LONG).show();      
}

private String isCheckedOrNot(CheckBox checkbox) {
    if(checkbox.isChecked())
        return "is checked";
    else
        return "is not checked";
}

private List<SMSListModel> getModel() {

    if(cursor.getCount()>0){
        for(i=0;i<cursor.getCount();i++){
            if(cursor.moveToPosition(i)){
                list.add(new SMSListModel(cursor.getString(cursor.getColumnIndex("address")),cursor.getString(cursor.getColumnIndex("body"))));
            }
        }
    }


    return list;
}
@Override
public void onClick(View v) {



    if( v == send){
        mDialog();

    }



public void mDialog(){



     // Show The Dialog with Selected SMS 
     AlertDialog dialog = new AlertDialog.Builder(context).create();
     dialog.setTitle("Message App");
     dialog.setIcon(android.R.drawable.ic_dialog_info);
     dialog.setMessage("Count : ");
     dialog.setButton(DialogInterface.BUTTON_POSITIVE, "ok",
             new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) 
         {
             String phoneNo = "111";
             if(list.size()>0){
                 for(i=0;i<list.size();i++){
                     if(list.get(i).isSelected()){

                         try{
                             SmsManager smsManager = SmsManager.getDefault();
                             StringBuilder builder = new StringBuilder();
                             for(SMSListModel p: list){
                                 builder.append(p.toString());
                                 builder.append('\n');
                             }
                            String sms = builder.toString();
                             smsManager.sendTextMessage(phoneNo, null, sms, null, null);
                          Toast.makeText(getApplicationContext(), "SMS Sent!",Toast.LENGTH_LONG).show();

                         }

                         catch (Exception e){
                             Toast.makeText(getApplicationContext(),"SMS faild, please try again later!",Toast.LENGTH_LONG).show();
                             e.printStackTrace();

                         }
                         dialog.dismiss();

                 }
              }
            }
         }
     });

     dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", 
            new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "SMS not Sent",Toast.LENGTH_LONG).show();
                        dialog.dismiss();

                    }
                });
     dialog.show();

}
public class SMSListAdapter extends ArrayAdapter<SMSListModel> {

private final List<SMSListModel> list;
private final Activity mContext;
boolean checkAll_flag = false;
boolean checkItem_flag = false;

public SMSListAdapter(Activity context,List<SMSListModel> list) 
{
    super(context, R.layout.listview_each_item, list);
    mContext = context;
    this.list = list;
}

static class ViewHolder {
    protected TextView textAddress;
    protected TextView textBody;
    protected CheckBox checkbox;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder viewHolder = null;
    if (convertView == null) {
        LayoutInflater inflator = mContext.getLayoutInflater();
        convertView = inflator.inflate(R.layout.listview_each_item, null);
        viewHolder = new ViewHolder();
        viewHolder.textAddress = (TextView) convertView.findViewById(R.id.tvSMSSend);
        viewHolder.textBody = (TextView) convertView.findViewById(R.id.tvSMSBody);
        viewHolder.checkbox = (CheckBox) convertView.findViewById(R.id.cbSelect);
        viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        int getPosition = (Integer) buttonView.getTag();  // Here we get the position that we have set for the checkbox using setTag.
                        list.get(getPosition).setSelected(buttonView.isChecked()); // Set the value of checkbox to maintain its state.
                    }
                });
        convertView.setTag(viewHolder);
        convertView.setTag(R.id.tvSMSSend, viewHolder.textAddress);
        convertView.setTag(R.id.tvSMSBody, viewHolder.textBody);
        convertView.setTag(R.id.cbSelect, viewHolder.checkbox);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    viewHolder.checkbox.setTag(position); // This line is important.

    viewHolder.textAddress.setText(list.get(position).getAddress());
    viewHolder.textBody.setText(list.get(position).getBody());
    viewHolder.checkbox.setChecked(list.get(position).isSelected());    

    return convertView;
}
public class SMSListModel {

private String address;
String body;
private boolean selected;

public SMSListModel(String address, String body) {
    this.address = address;
    this.body = body;
}

public String getAddress() {
    return address;
}

public String getBody() {
    return body;
}

public boolean isSelected() {
    return selected;
}

public void setSelected(boolean selected) {
    this.selected = selected;
}

public String toString(){

    return body;
}}

Respuestas a la pregunta(2)

Su respuesta a la pregunta