В своём приложении на Андроид я использую две активити,где первая активити представляет Radiogroup где при выборе определённой radiobutton она передаёт имя своего id во вторую активити,я сохраняю выбор radiobutton при переходе во вторую активити,по задумке при возвращении на первую активити пользователь видит помеченный вариант который он выбрал ранее,что бы не путатся и выбирает другой и его перебрасывает обратно на активити 2,но в моём случае при нажатии кнопки возврата на первую активити он не даёт ему перейти,как будто на первой срабатывает isChecked и он с темже id возвращает на вторую активити не давая выбрать другие варианты, не пойму как решить проблему.вот код первой активити:
Intent intent;
String name;
int id;
SharedPreferences pref;
RadioGroup radioGroup;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
radioGroup = (RadioGroup)findViewById(R.id.radioGroup);
id=radioGroup.getCheckedRadioButtonId();
radioGroup.setOnCheckedChangeListener(rad);
intent = new Intent(Menu.this, MainActivity.class);
LoadPreferences();
}
OnCheckedChangeListener rad = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
SavePreferences("radioindex", id);
name =getResources().getResourceEntryName(checkedId);
intent.putExtra("sample",name);
startActivity(intent);
finish();
}
};
private void SavePreferences(String key, int value) {
pref = getSharedPreferences("setting", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt(key, value);
editor.apply();
}
private void LoadPreferences() {
pref = getSharedPreferences("setting", MODE_PRIVATE);
id = pref.getInt("radioindex", -1);
if(id>0){
RadioButton rbtn=(RadioButton)radioGroup.findViewById(id);
rbtn.setChecked (true);
}}
}
В вашем случае срабатывает OnCheckedChangeListener
после LoadPreferences
который и запускает вторую Activity. Попробуйте запустить метод LoadPreferences()
до того как установили listener для радио группы :
intent = new Intent(Menu.this, MainActivity.class);
LoadPreferences();
radioGroup.setOnCheckedChangeListener(rad);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как получить байт код класса, это понятно, можно при помощи идеи или же дефолтными средствами
Написал сервис на Spring Boot, после чего, было необходимо перевести его на TomcatДля этого необходимо было добавить плагин в gradle, чтобы получить...
Всем приветХочу написать тест, который будет открывать веб-страничку, считывать нее текст, и в зависимости от результата нажимать ту или...
В своём приложении я использую radiogroup в которой находится несколько radiobuttonПри выборе, radiobutton передаёт имя своего id на активити 2