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

时间:2017-08-16 23:53:19

标签: android

我正在制作游戏,这个游戏有几个级别,但是我必须为每个级别制作一个活动,在这个游戏中,用户在每个级别结束后获得5个分数并使用意图按钮进入下一个级别,我遇到了在活动和收集分数之间转换分数的问题/非常感谢...

score1 + score2 + score3 + ....

一项活动

     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);
}}

请为下一次活动提供必要的代码

两项活动

   ???????

三项活动

  ??????

2 个答案:

答案 0 :(得分:0)

由于您将得分放在意图中,在第二次和第三次活动的onCreate()中,您可以通过getIntent()访问意图。有了这个,您可以执行以下操作:

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

从上一个活动中检索得分。

答案 1 :(得分:0)

如果您希望在多个活动中保留数据,则有多种选择,例如:捆绑包,共享首选项,SQLite数据库等,但我建议使用POJO。否则,在捆绑包的情况下,您将不得不继续将您的分数从活动A,活动B,活动C等传递给活动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(<your value>);

从您的活动中检索得分:int score = ScoreModel.getScore();