gpt4 book ai didi

android - 如何在android中动态高效地切换activity?

转载 作者:行者123 更新时间:2023-11-30 00:26:55 25 4
gpt4 key购买 nike

我正在开发一款 Android 游戏,其中有近 50 个级别,每个级别代表一个 activity 。例如。 Level1, Level2...Level50。完成每个级别后,我将切换到 LevelUpActivity,在这里我会显示玩家的当前分数和级别以及 Level Up 消息。单击按钮我将切换到游戏的下一个级别。现在我的问题是,当我拥有当前级别编号时,如何切换到下一个 activity(级别)?例如。假设我已经清除了 Level2 然后我想从 LevelUpActivity 跳到 Level3 有什么有效的方法可以做到这一点?目前,我通过使用 Switch Case 语句成功完成了这项任务。但是它会有效地处理 50 或更多的数字来检查然后相应地切换 Activity 吗?以下代码 fragment 显示了 LevelUpActivity

的类定义
public class LevelUpActivity extends Activity implements View.OnClickListener {
Button btn_continue;
TextView scoreview, levelview;
int score, level;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.level_up);

Intent intent = getIntent();
Bundle bundle = intent.getExtras();
score = bundle.getInt("score");
level = bundle.getInt("levelno");
System.out.println("Current Score = " + score);

levelview = (TextView) findViewById(R.id.levelView);
levelview.setText("Level " + level + " Completed");
scoreview = (TextView) findViewById(R.id.score);
scoreview.setText(score + "");

btn_continue = (Button) findViewById(R.id.levelbtn);
btn_continue.setOnClickListener(this);
}

@Override
public void onClick(View v) {
if (v.getId() == R.id.levelbtn) {
Intent i;
switch (level) {
case 1:
i = new Intent(this, Level2.class);
i.putExtra("score", score);
startActivity(i);
break;

case 2:
i = new Intent(this, Level3.class);
i.putExtra("score", score);
startActivity(i);
break;

case 3:
i = new Intent(this, Level3.class);
i.putExtra("score", score);
startActivity(i);
break;
}
}
}
}

最佳答案

switch 语句的性能不会随着语句数量的增加而显着降低。不过,switch 语句会非常长。

假设每个 level Activity 都遵循相同的界面(即它们只接受“分数”而不接受其他任何东西),那么您可以将所有级别放在一个数组中。

private static final Class<Activity>[] levels = [
Level1.class,
Level2.class,
Level3.class,
...
Level4.class
]

然后像这样检索它们:

int levelNumber = someMethodToGetLevelNumber();
Class<Activity> levelClass = levels[levelNumber];
Intent i = new Intent(this, Level2.class);
i.putExtra("score", score);
startActivity(i);

关于android - 如何在android中动态高效地切换activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45176691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com