2017-08-16 91 views
-1

我正在制作一款游戏,这款游戏有几个关卡,但我必须为每个关卡制作一个活动。在这个游戏中,用户在每关关闭后获得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活动

??????? 

3活动

?????? 

回答

0

既然你把分数的意向,在OnCreate()的你第二和第三个活动,您可以通过getIntent()访问意图。有了这个,你可以做这样的事情:

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

从上一个活动检索分数。

0

如果您想在多个活动中保留数据,可以有多种选择,例如,包,共享首选项,SQLite数据库等,但我会建议使用POJO。否则,如果是Bundle,则必须继续将活动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();

相关问题