【问题标题】:How can i implement high score in Android Studio and transfer it between activites? [duplicate]如何在 Android Studio 中实现高分并在活动之间转移? [复制]
【发布时间】:2020-12-23 16:40:57
【问题描述】:

我正在创建一个游戏,您可以在其中点击图像以在图像消失之前增加分数。我有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);
}

【问题讨论】:

    标签: java android mobile-application


    【解决方案1】:

    您应该使用SharedPreference 将高分保存在本地。只有当您卸载应用或清除应用数据时,该值才会被删除。 SharedPreference 文档 - https://developer.android.com/training/data-storage/shared-preferences

    【讨论】:

    • 我知道,我也使用共享偏好来保存分数,但是当谈到高分时,我找不到实现它的方法。
    【解决方案2】:

    在 java 和 android studio 中的屏幕之间传递数据的另一种方法是创建一个意图,您可以在其中将数据从一个屏幕发送到另一个屏幕。 如果您有兴趣了解它们,youtube 上有一些关于意图的教程。

    虽然这里有一点我可以告诉你:

    Intent intent= new Intent(this, SecondActivity.class); 创建一个意图。 secondactivity 是我们要将数据发送到的类的名称。 当我们想要运行意图时,我们需要放置一些数据然后启动它:

    intent.putExtra("winner",WINNER); - 输入数据(示例)

    然后您需要启动活动,以便它转到您要发送数据的目标页面/屏幕。您在代码中正确执行的操作。 之后你需要在第二个活动中得到它-

    Intent intent=getIntent();
    if(intent.getIntExtra("winner",-1)==-1) { winner.setText("TIE"); }
    

    看起来像这样 然后你可以做同样的想法,如果你想发回数据并确保你每次都使用 finish() 函数,这样意图就不会溢出,因为有这么多会同时打开而不做任何事情.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多