Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用方法设置额外值_Java_Android_Eclipse_Android Intent_Methods - Fatal编程技术网

Java 使用方法设置额外值

Java 使用方法设置额外值,java,android,eclipse,android-intent,methods,Java,Android,Eclipse,Android Intent,Methods,我是Android编程新手,我遇到了一个很容易解决的小问题。我正在做一个非常基本的游戏,当游戏结束时,我想把高分返回主菜单;我想从一个类中提取分数(hitCount)值,并在另一个类的putExtra中使用它 因此,此代码在GameActivity中: public void finish(){ Intent returnIntent = new Intent(); returnIntent.putExtra("GAME_SCORE",gameView.getHitCount

我是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));
            }
        }   
    }

}
这就是我在日志中遇到的错误:

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

任何建议都将不胜感激。

也许问题在于gameView。getHitCount()在第一段代码中,尝试检查它是否真的是一个数字,或者它在ActivityResult上是否为null,当它知道调用了哪个意图,因此相同的意图会起作用。发送结果。在这里,您正在主活动中创建意图,但它不期望任何意图结果,因为它没有调用任何意图,这就是它抛出运行时异常的原因。我建议您使用共享首选项,因为它很容易实现,并且适合您的游戏。

我认为您不应该在GameActivity中调用super.finish()。@serious198706:这似乎只会让我的AVD上的“后退”按钮无所作为。