我是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
非常感谢任何建议。
答案 0 :(得分:0)
问题可能是第一段代码中的gameView.getHitCount(),试着检查它是否真的是一个数字,或者它是否为空
答案 1 :(得分:0)
Onactivityresult工作时,它知道调用哪个意图,因此相同的意图将发送结果。你在主要活动中创建意图,但它不期望任何意图结果,因为它没有调用任何意图,这就是为什么它抛出运行时exception.i会建议你使用共享首选项,因为它易于实现并适合你的游戏。