SMS Manager

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SmsManager smsManager = SmsManager.getDefault();
for (int i = 0; i <= telefones1.size(); ++i) {
int b = i - 1;
smsManager.sendTextMessage(telefones1.get(b), null, text1.getText().toString(), null, null);
}
}
});

Nao estou conseguindo pegar o valor da ArrayList telefones1se e coloco 0 no lugar da variavel b funciona,mas se deixo a variavel b fecha o app

O seu erro é que está tentando pegar o objeto da posição -1, pois 0 - 1 = -1. Desta forma o erro ocorre porque não encontra essa posição da lista.
Mais uma correção, você deve percorrer da linha 0 ate o tamanho da lista e não igual, se não ele tentará pegar um tamanho inexistente.

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SmsManager smsManager = SmsManager.getDefault();
                for (int i = 0; i < telefones1.size(); ++i) {
                    smsManager.sendTextMessage(telefones1.get(i), null, text1.getText().toString(), null, null);
                }
            }
        });

Uma boa prática para esse tipo de serviço seria criar um AsyncTask e desabilitar o botão para evitar possíveis spans de clique.

Bom dia Anderson, muito obrigado deu certo o app nao esta mais fechando mais, porem nao esta enviando os sms. Pode me ajudar nisso? Eu tenho outra actitivity que tem o mesmo codigo e envia sms normalmente.

Alguem pode ajudar?

Geralmente quando envia SMS via celular, vai e volta operadora bloqueia o envio. Existem algumas empresas conheço a www.smspeople.com.br que fazem integração de envio, resposta com número curto. Tem os manuais inclusive em java, php, etc.