How to save Radiobutton value and convert to String

Asked

Viewed 1,855 times

2

I’m having trouble finding a code that works.

Below is the code I’m using in Android Studio, this code takes the form information and sends to a php file to save in the database, is working well.

What I need is a code for the Radiobutton information to be registered as well, I am not able to register the String to save in the database.

I have tried several codes but it does not save the value of the radiobutton, whenever it saves the record or saves numbers or saves the word android.widget.radio.

The only way I could save the right 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.
Does anyone know how to make it work properly?

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;
  • Try to take a look at that link, I am without any tool to test, but it seems to me that meets what you need, if that’s right, put as answer.

2 answers

1


Remember that you need to see what you’re assigning as a checkbox value:

...
        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();

...
  • Thanks @Lollipop !! I adapted the code for my project and it is working very well. Now yes it is saving as it should in the database. // recebendo o botão selecionado&#xA; int selectedId = selecao.getCheckedRadioButtonId();&#xA;&#xA; // buscando e retornando o id&#xA; radioButton = (RadioButton) findViewById(selectedId);&#xA;&#xA; String opcao = radioButton.getText().toString().trim().toLowerCase();&#xA;&#xA; register(nome, email, cpf, telefone, endereco, cidade, estado, senha, opcao);

0

Good night.

Follows 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;
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.