使用方法设置intent putExtra值

时间:2014-04-18 09:22:46

标签: java android eclipse android-intent methods

我是Android编程新手,我遇到的问题可能非常容易解决。我正在制作一个非常基本的游戏,当游戏结束时,我想把高分返回到主菜单。我一般都很好意思是如何工作但我对这个有点困难;我想要从一个类中提取得分(hitCount)值,并在另一个类的putExtra中使用它。

所以,这段代码在GameActivity中:

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

此代码在GameView中:

public int getHitCount(){
return hitCount;
}

我确信这可能是第二个代码的一个非常简单的问题,但我在Eclipse中没有错误;当我回到游戏的主菜单时,它只会在我的AVD中崩溃应用程序。

如果有帮助,这是我在主菜单上使用的代码;

protected void onActivityResult(int requestCode, int resultCode, Intent returnIntent) {
    // Check which request we're responding to
    if (requestCode == SCORE_REQUEST_CODE) {
        // Make sure the request was successful
        if (resultCode == RESULT_OK) {
            if (returnIntent.hasExtra("GAME_SCORE")) {
                int scoreFromGame = returnIntent.getExtras().getInt("GAME_SCORE");
                tvScore.setText(Integer.toString(scoreFromGame));
            }
        }   
    }

}

这是我在logcat中遇到的错误:

04-18 04:51:33.145: E/AndroidRuntime(1190): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {cct.mad.lab/cct.mad.lab.MainMenu}: java.lang.NullPointerException

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

问题可能是第一段代码中的gameView.getHitCount(),试着检查它是否真的是一个数字,或者它是否为空

答案 1 :(得分:0)

Onactivityresult工作时,它知道调用哪个意图,因此相同的意图将发送结果。你在主要活动中创建意图,但它不期望任何意图结果,因为它没有调用任何意图,这就是为什么它抛出运行时exception.i会建议你使用共享首选项,因为它易于实现并适合你的游戏。