общие настройки и радио-кнопки Я не могу правильно сохранить одно состояние радио-кнопки

как говорится в заголовке, я не могу заставить его работать по какой-то причине, я попытался отладить, но не смог найти проблему, каждый раз, когда я нажимаю на radio_button_B, он застревает на нем и никогда не переключается на radio_button_A

static RadioGroup radio_group;
RadioButton radio_button_A;
RadioButton radio_button_B;
private SharedPreferences sp_for_radio;

onCreate

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

//id

    radio_group = findViewById(R.id.radio_group);
    radio_button_A = findViewById(R.id.team_a_radio);
    radio_button_B = findViewById(R.id.team_b_radio);

// SP getBoolean

    sp_for_radio  = getSharedPreferences("sp_radio", MODE_PRIVATE);
    radio_button_A.setChecked(sp_for_radio.getBoolean("team_a_rb", false));
    radio_button_B.setChecked(sp_for_radio.getBoolean("team_b_rb", false));

// onChecked

    radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            SharedPreferences.Editor editor2 = sp_for_radio.edit();
            RadioButton checkedRadioButton = group.findViewById(checkedId);
            // This puts the value (true/false) into the variable
            boolean isChecked = checkedRadioButton.isChecked();

            //

            if (isChecked) {

                if (radio_button_A.getId()==checkedRadioButton.getId()){
                    editor2.putBoolean("team_a_rb", isChecked);
                    editor2.apply();
                }else if (radio_button_B.getId() == checkedRadioButton.getId()){
                    editor2.putBoolean("team_b_rb", isChecked);
                    editor2.apply();
                }
            }
        }
    });


}

person TheHumanItSelf    schedule 09.09.2019    source источник


Ответы (1)


РЕДАКТИРОВАТЬ :

if (isChecked) {

                if (radio_button_A.getId()==checkedRadioButton.getId()){
                    editor2.putBoolean("team_a_rb", isChecked);
                    editor2.putBoolean("team_b_rb", false);
                    editor2.apply();
                }else if (radio_button_B.getId() == checkedRadioButton.getId()){
                    editor2.putBoolean("team_b_rb", isChecked);
                    editor2.putBoolean("team_a_rb", false);
                    editor2.apply();
                }
            }
person Sorin Iercosan    schedule 10.09.2019
comment
Я отредактировал вопрос, можно еще раз проверить? пожалуйста - person TheHumanItSelf; 10.09.2019