#java #android #android-studio #radio-button #sharedpreferences
#java #Android #android-studio #переключатель #sharedpreferences
Вопрос:
СЦЕНАРИЙ
Внутри радиогруппы есть 3 радиокнопки, имя первой радиокнопки — «A», имя второй радиокнопки — «B», а третья радиокнопка — «C».
ВОПРОС
-
Как получить значение int, то есть, если я выберу первую кнопку radiobutton, тогда она должна получить значение int, равное 2, и аналогично, если я выберу вторую и третью кнопки radiobutton, тогда она должна получить значение int, равное 5 и 6.
-
Как только я выбираю любую из кнопок radiobutton, она автоматически сохраняет значение int в общих настройках (например, я выбираю первую кнопку radiobutton, для которой сохраняется значение «2»).
-
После того, как я выбрал, я решил закрыть приложение и открыть еще раз и увидеть, что первая кнопка 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); }