Atualizar estado de botões

Na minha activity, eu fiz a ação de um botão dentro do onResume assim:

abd1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
abd1.setBackgroundResource(R.drawable.bt_intensidade_ok);
abd2.setBackgroundResource(R.drawable.bt_intensidade_0);
abd3.setBackgroundResource(R.drawable.bt_intensidade_0);
abd4.setBackgroundResource(R.drawable.bt_intensidade_0);
}
});

Mas quando eu clico nele, ao invés de alterar o drawable, ele crasha. Eu pensei em salvar as alterações no DAO e chamar chamar uma intent pra chamar a Activity de novo e dar um finish, mas isso é uma boa prática?
Existe alguma outra maneira de se fazer o botão atualizar o estado dele sem precisar recarregar a activity? Porque nessa ctivity, muitos botões parecidos serão clicados e isso pode afetar o desempenho do app

Não é uma boa prática.

Se você quer alterar o background do botão, basta criar um XML linkando cada imagem ao estado específico do botão:

estados.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Pressionado -->
    <item android:state_pressed="true"
          android:drawable="@drawable/img_pressionado" />

    <!-- Com foco -->
    <item android:state_focused="true"
          android:drawable="@drawable/img_foco" />

    <!-- Background padrão -->
    <item android:drawable="@drawable/img_default" />
</selector>

E no seu Button fazer:

meuButton.setImageDrawable(R.drawable.estados);

Mas no caso, ao soltar o botão ele volta ao estado padrão, certo?
Eu preciso que ele mude de estado ao ser pressionado e que os outros “desliguem”.
Vou tentar algo aqui que eu li, e se der certo eu deixo uma resposta, mas vlw pela sua, já ajudou bastante