我正在尝试使用putExtra和getExtras在我正在编写的安卓游戏中传递一些信息(这是一个分数)。当我传递它时,我在一个类中使用此代码来输入信息:
Intent winScreen = new Intent(context, WinScreen.class);
winScreen.putExtra("score", "123");
当我得到它时,我正在使用:
Intent x=new Intent(this, GameCall.class);
Bundle ebundle = x.getExtras();
String score = (String) x.getExtras().getSerializable("score");
我现在只是尝试使用样本分数进行测试,所以我认为设置正确的值不是问题所在。这是我在其他地方看到的为何会出现这样的空指针的建议。我知道它将“得分”理解为额外的。所以我很难知道信息丢失的地方!
答案 0 :(得分:1)
使用Intent
启动新活动时,必须使用getIntent()
来获取意图的特定实例。使用Intent x=new Intent(this, GameCall.class);
将无效。请尝试以下代码:
Intent x= this.getIntent(); //in the WinScreen activity
String score = (String) x.getStringExtra("score");
答案 1 :(得分:-1)
使用Intent.getExtras()
会返回您之前使用Bundle
方法添加到Intent的Intent. putExtras()
。要简单地向Intent添加一个String,请使用Intent.putExtra(String tag, String value)
并使用Intent.getStringExtra(String tag)
获取它。我自己多次犯了这个错误;它不是非常用户友好的xD