Сохранить значение Radiobutton int (Android Studio)

#java #android #android-studio #radio-button #sharedpreferences

#java #Android #android-studio #переключатель #sharedpreferences

Вопрос:

СЦЕНАРИЙ

Внутри радиогруппы есть 3 радиокнопки, имя первой радиокнопки — «A», имя второй радиокнопки — «B», а третья радиокнопка — «C».

ВОПРОС

  1. Как получить значение int, то есть, если я выберу первую кнопку radiobutton, тогда она должна получить значение int, равное 2, и аналогично, если я выберу вторую и третью кнопки radiobutton, тогда она должна получить значение int, равное 5 и 6.

  2. Как только я выбираю любую из кнопок radiobutton, она автоматически сохраняет значение int в общих настройках (например, я выбираю первую кнопку radiobutton, для которой сохраняется значение «2»).

  3. После того, как я выбрал, я решил закрыть приложение и открыть еще раз и увидеть, что первая кнопка radiobutton все еще выбрана.

Ответ №1:

Вы можете получить CheckedId вашей радиогруппы и сравнить его с идентификатором из каждой радиокнопки, затем установить положение значений.

Пример:

     int value;
    radioGroup.setOnCheckChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId){
            if (checkedId == R.id.buttonA) {
                value = 2;
            } else if (checkedId == R.id.buttonB) {
                value = 5;
            } else {
                value = 6;
            }
        }
  

Сохраните это значение в своих настройках, и когда вы вернетесь в приложение, просто проверьте позицию и выполните RadioGroup.check();

Комментарии:

1. Это сработало, я могу сохранить int значение. Но как сохранить, что выбранная кнопка radiobutton означает, что если я выберу первую кнопку radiobutton, а затем закрою приложение и снова открою приложение, то эта первая кнопка radiobutton все еще выбрана?

2. Вы можете получить сохраненные вами общие настройки и проверить их по значению с помощью переключателя, например, если вы получаете 2 в качестве значения, это первая позиция RadioGroup.check(R.id.ButtonA).

3. Я использую эту логику после уничтожения приложения, но она все еще остается непроверенной if (value==2){ buttonA.setChecked(true); }else { buttonA.setChecked(false); } , не могли бы вы помочь мне в этом.

4. SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(контекст); int проверено = preferences.getInt(«yourKey», defaultValue); если (проверено == 2) { RadioGroup.check(R.id.ButtonA); }

5. Я использую эту логику, но не работает int method=sharedPreferences.getInt("key",4); if (method==2){ radioOne.setChecked(true); }else { radioOne.setChecked(false); }