Java 使用方法设置额外值
我是Android编程新手,我遇到了一个很容易解决的小问题。我正在做一个非常基本的游戏,当游戏结束时,我想把高分返回主菜单;我想从一个类中提取分数(hitCount)值,并在另一个类的putExtra中使用它 因此,此代码在GameActivity中: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
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上的“后退”按钮无所作为。