Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema com RadioButton retornando null

Código da minha classe FormularioClienteHelper

Aqui estou vendo qual opção do radiobutton foi selecinada

//Pegando qual radiobutton foi selecinada
        sexos.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.campo_cliente_masculino:
                        cliente.setSexo(Sexo.MASCULINO);
                        break;

                    case R.id.campo_cliente_feminino:
                        cliente.setSexo(Sexo.FEMININO));
                        break;
                }
            }
        });

Classe Pessoa

public class Pessoa {

    private Long codigo;

    private String nome;

    private String sobrenome;

    private String telefone;

    private String dataNascimento;

    private Sexo sexo;

Enum Sexo

public enum Sexo {
    MASCULINO,
    FEMININO;
}

Classe Cliente

public class Cliente extends Pessoa {

    private String cpf;

    private List<Animal> listaAnimais;
}

LEMBRANDO QUE ISSO É NA APLICAÇÃO ANDROID

O que estou querendo fazer é pegar o valor do enum Sexo e jogar pro webservice, onde a classe Pessoa está a seguinte: As seguintes classes abaixo são do webservice

@Entity(name = "Pessoas")
@Inheritance(strategy = InheritanceType.JOINED)
public class Pessoa {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CODIGO_PESSOA")
    @SequenceGenerator(name = "CODIGO_PESSOA", sequenceName = "SEQ_CODIGO_PESSOA", allocationSize = 1)
    private Long codigo;

    @Column(nullable = false)
    private String nome;

    @Column(nullable = false)
    private String sobrenome;

    private String telefone;

    @Column(name = "data_nascimento")
    private String dataNascimento;

    @Column(nullable = false)
    //@Enumerated(EnumType.STRING)
    private String sexo;
}

Debug

Ta dando problema (sempre retorna null) ao pegar o valor do enum na aplicação Android e jogar pro webservice salvar em forma de String.

2 respostas

Renan, de boa ?

Um teste que eu faria seria colocar um log pra ver se esse seu switch tá sendo chamado, só por garantia.

solução!

Fala aí Matheus, muito de boa mano. Resolvi o problema!

Mudei o seguinte código:

//Pegando qual radiobutton foi selecinada
        sexos.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.campo_cliente_masculino:
                        cliente.setSexo(Sexo.MASCULINO);
                        break;

                    case R.id.campo_cliente_feminino:
                        cliente.setSexo(Sexo.FEMININO));
                        break;
                }
            }
        });

Para:

int selectecId = sexos.getCheckedRadioButtonId();

        switch (selectecId) {
            case R.id.campo_cliente_masculino:
                cliente.setSexo(Sexo.MASCULINO);
                break;

            case R.id.campo_cliente_feminino:
                cliente.setSexo(Sexo.FEMININO);
                break;
        }

Onde a variável sexos é do tipo RadioGroup, que na qual, la no xml, envolve dois RadioButton.