Вопрос:

Показать экран, используя startActivity (Intent) и handler.postDelayed ()

android handler runnable

21 просмотра

2 ответа

657 Репутация автора

Я делаю приложение, в котором мне нужно показывать 5 вопросов подряд, но между каждым вопросом мне нужно показывать один и тот же экран с графикой в ​​течение фиксированного промежутка времени (после чего он должен исчезнуть автоматически). Я использовал цикл for для создания 5 экранов с вопросами, которые работали нормально, однако теперь я хочу добавить графический экран между использованием обработчика и функцией postDelayed (), но он не работает. Есть идеи, что не так с моим кодом? Или нельзя переключаться между экранами таким образом?

        //launch questionsActivity times 5
    final Intent questionIntent = new Intent(this, QuestionActivity.class);
    for(int i = 0; i < 5; i++){
        questionIntent.putExtra("Question", currentGame.getQuestionText(i));
        questionIntent.putExtra("Player", String.valueOf(i));
        currentGame.getQuestion(i).setAnswered(true);//add 'answered' flag on question for game

        setContentView(R.layout.activity_randomizer);
        final Handler handler = new Handler();
        final Runnable r = new Runnable() {
            public void run() {
                startActivity(questionIntent);
            }
        };
        handler.postDelayed(r, 6000);
}

Заранее большое спасибо

Автор: Maja Okholm Источник Размещён: 11.08.2019 07:53

Ответы (2)


0 плюса

422 Репутация автора

Если вам нужно выполнить задачу в обработчике, используйте следующий код

new Handler().postDelayed (() -> {

    //your code here

}, 1000);
Автор: Jimale Abdi Размещён: 11.08.2019 07:58

0 плюса

1 Репутация автора

Лучшее решение - использовать Viewpagerс Fragmentчитать этот документ !

Автор: Hamed.Ghaderian Размещён: 11.08.2019 10:43
Вопросы из категории :
32x32