Android 如何在多个活动之间传输数据

Android 如何在多个活动之间传输数据,android,Android,我正在制作一个游戏,这个游戏有几个关卡,但我必须为每个关卡制作一个活动,在这个游戏中,用户在每个关卡结束后获得5分,然后通过意图按钮进入下一关卡,我陷入了在活动之间传递分数和收集分数的问题/非常感谢 得分1+得分2+得分3+ 一项活动 button2.setVisibility(View.VISIBLE); button2.setOnClickListener(new View.OnClickListener() { @Override pub

我正在制作一个游戏,这个游戏有几个关卡,但我必须为每个关卡制作一个活动,在这个游戏中,用户在每个关卡结束后获得5分,然后通过意图按钮进入下一关卡,我陷入了在活动之间传递分数和收集分数的问题/非常感谢

得分1+得分2+得分3+


一项活动

     button2.setVisibility(View.VISIBLE);
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(L1.this,L2.class);

            intent.putExtra("key",score);
            startActivity(intent);
        }
    });   score += 5;
    ((TextView) findViewById(txt_score)).setText(getString(R.string.score) + " " + score);
}}
  ??????
请填写下一步活动所需的代码


两项活动

   ???????
三项活动

     button2.setVisibility(View.VISIBLE);
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(L1.this,L2.class);

            intent.putExtra("key",score);
            startActivity(intent);
        }
    });   score += 5;
    ((TextView) findViewById(txt_score)).setText(getString(R.string.score) + " " + score);
}}
  ??????

由于您要在intent中打分,因此在第二个和第三个活动的onCreate()中,您可以通过getIntent()访问intent。使用此功能,您可以执行以下操作:

int previousScore = getIntent().getIntExtra("key", -1);

要从上一个活动中检索分数。

如果要跨多个活动持久化数据,有多种选择,例如捆绑包、共享首选项、SQLite db等,但我建议使用POJO。否则,在捆绑的情况下,您必须继续通过活动A、活动B、活动C等的分数。如果数据被扔掉,那么共享首选项和SQLite可能不值得付出努力。首先,创建一个简单的模型类

public class ScoreModel {
    private static int mScore; // note the static modifier

    // create setters/getters
    public static void setScore(int score) {
       mScore = score;
    }

    public static int getScore() {
       return mScore;
    }
}
现在,您可以从任何活动中检索您的分数,甚至更新它

从活动中设置分数:
ScoreModel.setScore()

从活动中检索分数:
int score=ScoreModel.getScore()