我正在制作游戏,这个游戏有几个级别,但是我必须为每个级别制作一个活动,在这个游戏中,用户在每个级别结束后获得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);
}}
请为下一次活动提供必要的代码
两项活动
???????
三项活动
??????
答案 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();