Сейчас я использую переключатель случаяКакая разница при использовании switch-case vs. if-else для radioGroup в Android?
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.Eng:
// do operations specific to this selection
setLocale("en_US");
Intent intentEng = new Intent(getActivity(), Some.class);
startActivity(intentEng);
break;
case R.id.French:
// do operations specific to this selection
setLocale("fr");
Intent intent = new Intent(getActivity(), Some.class);
startActivity(intent);
break;
}
}
});
Что происходит иногда я нажимаю первый переключатель, и я сразу же нажмите вторую, а также.
В блоке case передаю намерение классу службы, который ведет переговоры с веб-службами и обновляет arrayAdapter для ListView.
Поскольку я быстро нажимаю обе кнопки-переключатели, пользовательский интерфейс получает результаты обоих языков (блоки блокировки). 1) Как этого избежать? 2) Используется ли в этом случае использование коммутационного корпуса вместо вопросов if-else?
Не следует ли 'isLoadingNewActivity = false;' вызываться, когда «адаптер» обновляет данные? 'onResume' никогда не может быть вызван, поскольку OP запускает' Сервис'. –
Вопрос не содержит никаких попыток запуска. Его цель - открыть другую деятельность. –
Справа. Цитирование OP «В блоке case я передаю намерение классу службы, который говорит с веб-службами». Я просто прочитал это и пропустил часть «startActivity()» –