2013-09-04 3 views
0

Я создаю приложение для викторины. В приведенном ниже коде я хочу, чтобы код после startActivity(intent); выполнялся после завершения этой операции. Приложение в текущем состоянии отобразит кнопки ответа на вопрос и ответы. Как только пользователь сделает выбор, следующий вопрос и соответствующие кнопки ответа будут отображаться в течение секунды секунды до запуска новой активности. То, что я хочу, - это приложение, чтобы перейти прямо к новому мероприятию после выбора ответа и после завершения нового действия, чтобы отобразить следующий вопрос.Проблема с выполнением кода После startActivity()

Мой код:

Intent intent = new Intent(getApplicationContext(), NewActivity.class); 
startActivity(intent); 

// helper variable to keep track of the current question 
questionCounter++; 
if(questionCounter < numGameQuestions) 
{ 
    // displays the next question 
    playGame(randQuestionsArr[questionCounter]); 
} 
+0

Что проблема, что вы столкнулись? Разве это не начинается? Попробуйте запустить намерение, используя контекст «Активность». например: «Intent (CurrentActivityName.this, NewActivity.class);' –

+0

Его очень запутывает то, что происходит и что вы * хотите *. После вызова 'startActivity()' запускается 'Activity'. Не могли бы вы объяснить немного лучше, что вы хотите, и что происходит *? – codeMagic

+0

** Что происходит **: В текущей деятельности у меня есть TextView, чтобы отобразить вопрос и четыре кнопки для выбора ответа. Как только пользователь нажимает кнопку, TextView и кнопки будут установлены в течение секунды секунды на следующий вопрос и соответствующие варианты ответа. Затем запускается NewActivity. – Jesse

ответ

0

1 Добавить определение

public static final int REQUEST_CODE = 100; 

2 Заменить startActivity() с startActivityForResult();

startActivityForResult(intent, REQUEST_CODE); 

3 Прежде чем завершить свою деятельность в своей дочерней деятельности, вызовите метод setResult;

setResult(RESULT_OK); 

4 Добавить вещи, что делать в методе onActivityResult в родительской деятельности.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == REQUEST_CODE) { 
    if (resultCode == RESULT_OK) { 
     System.out.println("OK"); 
    } 
} 
} 
+0

@ Jesse убедитесь, что вы имеете дело со всей цепочкой действий приложения, например. кнопка «home versus back» и т. д., чтобы убедиться, что поведение - это то, что вы ожидаете, т. е. делает ли кнопка «Назад» ответ на один вопрос или на начало? –

0

Что вы ищете startActivityForResult(Intent intent, int requestCode)

Позвонив startActivityForResult(Intent intent, int requestCode), вы также должны:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    switch (requestCode) { 
    case REQUEST_CODE_YOU_USED_IN_STARTACTIVITYFORRESULT: 
     switch (resultCode) { 
     case Activity.RESULT_OK: 
      Log.d(TAG, "Result OK"); 
      // Your code after "that Activity" is finished. 

      break; 
     } 
     break; 

    default: 
     break; 
    } 
} 

А потом в that Activity, вам необходимо:

setResult(RESULT_OK); 

, чтобы вызывающая деятельность знала результат.

0

использование

отделка()

, чтобы остановить выполнение текущего activity после запуска нового намерения

Смежные вопросы