【发布时间】:2014-06-02 18:57:06
【问题描述】:
我是 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
任何建议将不胜感激。
【问题讨论】:
-
我认为你不应该在 GameActivity 中调用 super.finish()。
-
@serious198706:这似乎只是让我的 AVD 上的后退按钮什么都不做。
标签: java android eclipse android-intent methods