Java 总结两次测验的分数并将其显示在菜单上

Java 总结两次测验的分数并将其显示在菜单上,java,android,android-intent,Java,Android,Android Intent,伙计们,我有两个测试,当用户同时做这两个测试时,我想在菜单中显示用户的分数总和。下面是我的代码中与我的问题相关的部分: 小测验1: Intent intentt=new Intent(multiplechoicek1.this,menuaskisewn1.class); intentt.putExtra("scoree",mscore); startActivity(intentt); 小测验2: Intent intent=new Intent(diagwnismakefalaio1.thi

伙计们,我有两个测试,当用户同时做这两个测试时,我想在菜单中显示用户的分数总和。下面是我的代码中与我的问题相关的部分:

小测验1:

Intent intentt=new Intent(multiplechoicek1.this,menuaskisewn1.class);
intentt.putExtra("scoree",mscore);
startActivity(intentt);
小测验2:

Intent intent=new Intent(diagwnismakefalaio1.this,menuaskisewn1.class);
intent.putExtra("score",mScore);
startActivity(intent);
菜单

Intent intent=getIntent();
int score=intent.getIntExtra("score",0);
Intent intentt=getIntent();
int scoree=intentt.getIntExtra("scoree",0);
int athroisma=score+scoree;
currentscore.setText("To σκορ σου είναι: "+ athroisma +"/24");
当我测试应用程序时,它只显示1个测验的正确答案之和。我想这是因为当一个测验超过第二个测验的意图时,它调用oncreate方法时,会得到默认值…因此它不会对两个测验的正确答案进行求和。(我没有使用SharedReferences,因为我不想在应用程序关闭后存储数据)。有什么想法吗?谢谢你,很抱歉英语不好:)

当你使用“startActivity”方法从“MultipleEchoiceK1”和“diagwnismakefalaio1”开始“menuaskisewn1”活动时,它将创建“menuaskisewn1”和“menuaskisewn1”的新活动将只从上次调用的意图中获得额外的内容。所以你一次只有一个额外的意图,而不是两个

此外,您也不希望在共享首选项中保存数据

在这种情况下,您可以创建一个扩展“Application”类的类,然后在其中获取两个静态变量。通过这种方式,您可以在每个活动中访问这些变量,还可以将您想要的活动中的这两个变量相加。通过使用这种方式,您不必通过这些额外的意图


确保您的清单文件将使用该应用程序类。

不清楚如何以及何时执行打开
menuaskisewn1
活动的代码,但似乎要打开两次,为什么
然后,当
menuaskisewn1
打开时,您似乎想要获得两种不同的意图:

Intent intent=getIntent();
但是您所做的是两次获得相同的意图,这是启动活动的意图,因为一个活动仅由一个意图启动
因此,此意图包含带键的额外
“score”
并保存在
score
中,或者包含带键的额外
“score”
并保存在
score
中,但并非两者都保存
因此,其中一个变量
score
score
0
,当您添加它们时,结果与其中一个变量相同。

您可以做的是只启动一次活动,并添加两个额外值:

Intent intent=new Intent(multiplechoicek1.this,menuaskisewn1.class);
intent.putExtra("score1", mscore1);
intent.putExtra("score2", mscore2);
startActivity(intent);
并在活动打开时获取值:

Intent intent=getIntent();
int score1=intent.getIntExtra("score1",0);
int score2=intent.getIntExtra("score2",0);
int athroisma=score1+score2;
currentscore.setText("To σκορ σου είναι: "+ athroisma +"/24");