问题描述
我正在创建一个游戏,您可以在其中点击图像以在图像消失之前增加分数。我有3个活动,第一个是按开始键,另一个是玩游戏,边玩边看你的分数,最后一个是看你的分数。
我的问题是,我想在最后一个活动中添加一个高分部分。我该如何实施?
public void increasescore(View view) {
score = score + 1;
scoreText.setText("score: " + score);
}
这是我更改活动的代码:
public void changeActivity() {
Userscore = scoreText.getText().toString();
Intent intent = new Intent(GameActivity.this,FinishActivity.class);
intent.putExtra("score",Userscore);
startActivity(intent);
}
解决方法
您应该使用 SharedPreference
在本地保存高分。仅当您卸载应用程序或清除应用程序数据时,此值才会被删除。
SharedPreference 文档 - https://developer.android.com/training/data-storage/shared-preferences
在 java 和 android studio 中的屏幕之间传递数据的另一种方法是创建一个意图,您可以在其中将数据从屏幕发送到屏幕。 如果您有兴趣了解它们,可以在 youtube 上找到相关教程。
虽然这里有一点我可以给你看:
Intent intent= new Intent(this,SecondActivity.class);
创建一个意图。第二个活动是我们要将数据发送到的类的名称。
当我们想要运行意图时,我们需要放置一些数据然后启动它:
intent.putExtra("winner",WINNER);
- 输入数据(示例)
然后您需要启动活动,以便它转到您要发送数据的目标页面/屏幕。你在你的代码中做对了。 之后你需要在第二个活动中获得它-
Intent intent=getIntent();
if(intent.getIntExtra("winner",-1)==-1) { winner.setText("TIE"); }
它看起来像这样 那么你可以做同样的思考,如果你想把数据发回,并确保每次都使用 finish() 函数,这样意图就不会溢出,因为很多意图会同时打开而不做任何事情.