2015-05-04 3 views
0

Я создаю простую игру для Android, но я не уверен, что я делаю неправильно здесь из-за того, что я новичок в android. Первый бит кода у меня есть в GameView класса и возвращает целое число, сколько раз при нажатии спрайт:Намерение не возвращает счет?

public int getHitCount() { 
    return hitCount; 

} 

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

public void finish(){ 
    super.finish(); 
    Intent returnIntent = new Intent(GameActivity.this,MainMenu.class); 
    returnIntent.putExtra("GAME_SCORE",gameView.getHitCount()); 
    setResult(RESULT_OK, returnIntent); 

    } 

    } 

Вот код я использую, чтобы отобразить его на MainMenu классе, но он не работает по какой-то причине:

if (requestCode == SCORE_REQUEST_CODE) { 
     // Make sure the request was successful 
     if (resultCode == RESULT_OK) { 
      if (retIntent.hasExtra("GAME_SCORE")) { 
       int scoreFromGame = retIntent.getExtras().getInt("GAME_SCORE"); 
       tvScore.setText(""+Integer.toString(scoreFromGame)); 


      } 
     } 

public void startGame(View v){ 
    gameIntent = new Intent(this,GameActivity.class); 
    startActivityForResult(gameIntent, SCORE_REQUEST_CODE); 
} 
+0

Что возвращается как оценка? Ничего, 0 или что? – George

+0

@GeorgeR Он просто возвращает 0, независимо от того, какой счет получил в игре. –

+0

Вы уверены, что 'GameActivity' успешно получает значение? Добавьте запись в журнал, чтобы убедиться. –

ответ

1

намерение использовать, чтобы вернуть вещи является простым намерением - нет необходимости устанавливать целевой компонент

Intent returnIntent = new Intent(); 

Все в порядке.

Кроме того, попробуйте сделать setResult()до вызов заканчивается - скорее, в переопределенном виде. Вам необходимо переопределить что-то, сделайте это в onDestroy()

Также вы должны убедиться, что используете startActivityForResult(), чтобы начать работу с GameView.

+0

Извините, где это должно быть? это полностью смутило меня, почему оно не работает –

+0

Я могу заверить, что setResult() работает даже из внешнего финиша() - потому что я использую его в своем собственном приложении :) На самом деле я постараюсь сделать это, прежде чем звонить Конец(). – Hazam

+0

Итак, я бы создал для них новый класс? –

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