Перенаправление на начальную активность при попытке запустить мою третью активность на Android-студиях - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать приложение, в котором я запускаю третий Activity из второго действия, которое, в свою очередь, было запущено первым Activity.Всякий раз, когда я пытаюсь запустить третий Activity, приложение останавливается на секунду, а затем возобновляет первоначальное действие без сбоев

Я разместил свой код ниже на случай, если это поможет!

int ranNum = (int)(Math.random()*playerNames.size());
        String location = res.getStringArray(R.array.location)[(int)(Math.random()*res.getStringArray(R.array.location).length)];
        time = Integer.getInteger(timeSelection.getSelectedItem().toString());
        Intent gamePrep = new Intent(this, GamePrep.class);
        gamePrep.putExtra("time", time);
        gamePrep.putExtra("playerNames", playerNames.toArray());
        gamePrep.putExtra("numPlayers",numPlayers);
        gamePrep.putExtra("spyPlayer",playerNames.get(ranNum));
        gamePrep.putExtra("location", location);
        gamePrep.putExtra("roleList", locationRoles.get(location));
        gamePrep.putExtra("curPlayerNum", 0);
        startActivityForResult(gamePrep,1);

Редактировать: Вот код GamePrep onCreate ()

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game_prep);
    curPlayerNum = getIntent().getIntExtra("curPlayerNum", 0);
    numPlayers = getIntent().getIntExtra("numPlayers", 0);
    time = getIntent().getIntExtra("time", 5);
    playerNames = getIntent().getStringArrayExtra("playerNames");
    spyPlayer = getIntent().getStringExtra("spyPlayer");
    location = getIntent().getStringExtra("location");
    roleList = getIntent().getStringArrayExtra("roleList");
    curPlayer = playerNames[curPlayerNum];
    isSpy = curPlayer.equals(spyPlayer);
    next = findViewById(R.id.revealButton);
    nameOutput = findViewById(R.id.nameOutput);
    locationOutput = findViewById(R.id.locationOutput);
    roleOutput = findViewById(R.id.roleOutput);
    res = getResources();
    next.setText(res.getText(R.string.reveal));
    nameOutput.setText(curPlayer);
    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (curPlayerNum + 1 != playerNames.length) {
                if (!revealed) {
                    reveal();
                    revealed = true;
                    if(curPlayerNum+1 != playerNames.length) {
                        next.setText(res.getString(R.string.nextPlayer));
                    }
                    else
                    {
                        next.setText(res.getString(R.string.begin));
                    }
                }
                else
                    {
                    nextPlayer();
                    revealed = false;
                    next.setText(res.getString(R.string.reveal));
                }
            }
            else
            {
                startGame();
            }
        }
    });
}

И первые классы onCreate ()

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start_screen);
    openIntent = findViewById(R.id.startButton);
    openIntent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(StartScreen.this, GameMenu.class);
            startActivityForResult(intent,0);
        }
    });
}

У меня нет методов возобновлениядля любой деятельности.Еще раз спасибо за помощь!

1 Ответ

0 голосов
/ 06 октября 2018

Пожалуйста, опубликуйте код вашей первой Деятельности, я думаю, что проблема связана с методом onCreate () или onResume ().

Однако вы выполняете много операций, таких как поиск случайного числа с помощью параметра playerNames.size.().Все эти строки могут выполняться много раз (может быть в среднем 1 секунда).

...