How to save the value of the RadioButton and convert it to String

2

I'm having trouble finding a code that works.

Below is the code I'm using in Android Studio, this code takes the information from the form and sends it to a php file to save to the database, it's working fine.

What I need is a code for the RadioButton information to be registered too, I am not able to register the String to save to the database.

I have tried several codes but do not save the value of the radiobutton whenever you save the record or save numbers or save the word android.widget.radio .

The only way I was able to save the correct information is with the code:

String opcao = rb_make.getText().toString().trim().toLowerCase();

But if I add more options the program only registers the first one. Does anyone know how I can make it work correctly?

private void registerUser() {

    String nome = etNome.getText().toString().trim().toLowerCase();
    String email = etEmail.getText().toString().trim().toLowerCase();
    String cpf = etCpf.getText().toString().trim().toLowerCase();
    String telefone = etTelefone.getText().toString().trim().toLowerCase();
    String endereco = etEndereco.getText().toString().trim().toLowerCase();
    String cidade = etCidade.getText().toString().trim().toLowerCase();
    String estado = etEstado.getText().toString().trim().toLowerCase();
    String senha = etSenha.getText().toString().trim().toLowerCase();


    String opcao = ?????



    register(nome, email, cpf, telefone, endereco, cidade, estado, senha, opcao);

}

private void register(String nome, String email, String cpf, String telefone, String endereco, String cidade, String estado, String senha, String opcao) {

    String urlSuffix = "?nome="+nome+"&cpf="+cpf+"&senha="+senha+"&email="+email+"&telefone="+telefone+"&endereco="+endereco+"&cidade="+cidade+"&estado="+estado+"&opcao="+opcao;
    class RegisterUser extends AsyncTask<String, Void, String>{

        ProgressDialog loading;
    
asked by anonymous 30.09.2015 / 23:37

2 answers

1

Remember that you need to see what you are assigning as value to the checkbox:

...
        radio= (RadioGroup) findViewById(R.id.radiobu);

        // recebendo o botão selecionado
        int selectedId = radio.getCheckedRadioButtonId();

        // buscando e retornando o id
        radioButao= (RadioButton) findViewById(selectedId);

        //imprimindo o texto
        Toast.makeText(MyAndroidAppActivity.this,
         radioButao.getText(), Toast.LENGTH_SHORT).show();

...
    
01.10.2015 / 01:40
0

Good evening.

Follow the solution:

public class PrincipalActivity extends AppCompatActivity {
private EditText edtnome;
private RadioGroup valor;
private String opcoes = "";
private SharedPreferences save;
private SharedPreferences.Editor editor;
private int indiceSelecionado;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);

    edtnome = (EditText) findViewById(R.id.editTextNome);
    valor = (RadioGroup) findViewById(R.id.radioGroupOpcoes);
    save = getSharedPreferences("save",MODE_PRIVATE);

    //Recupera a chave nomeEdit e insere no EditText edtnome
    edtnome.setText(save.getString("nomeEdit", ""));

    //Recupera o valor do indiceSelecionado
    indiceSelecionado = save.getInt("chave_radio", 0);
    //Executa a condição abaixo para ver qual o ultimo ID que fora salvo, ou seja
    //qual o ultimo radioButton foi marcado
    if(indiceSelecionado == R.id.radioButtonEmpregado){
        valor.check(R.id.radioButtonEmpregado);
    }else if (indiceSelecionado == R.id.radioButtonDesempregado){
        valor.check(R.id.radioButtonDesempregado);
    }else if(indiceSelecionado == R.id.radioButtonNaoProcura){
        valor.check(R.id.radioButtonNaoProcura);
    }


    //Toast.makeText(this, "Id: " + indiceSelecionado, Toast.LENGTH_SHORT).show();

}

@Override
protected void onStop() {
    /*
    Ao ser chamado o metodo onStop ou seja, após a aplicação parar é feito um putString
    do nome digitado pelo usuário, assim ele grava o ultimo nome digitado para que quando
    volte para a aplicação o campo Nome já esta preenchido
    */
    super.onStop();
    /*
    * A variavel indiceSelecionado pega o ID do radio button que esta marcado
    * dessa maneira é salvo ela com uma chave do tipo chave_radio, para assim
    * recuperar a mesma no método Oncreate
    * */
    indiceSelecionado = valor.getCheckedRadioButtonId();
    editor = save.edit();
    editor.putString("nomeEdit", edtnome.getText().toString());
    editor.putInt("chave_radio", indiceSelecionado);
    editor.commit();
}

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.help, menu);
    return true;
}
    
18.04.2018 / 00:07