随机下一个活动按钮



我对编码真的很陌生。所以,如果我解释了糟糕的错误或犯了愚蠢的错误,就告诉我,这样我就能变得更好。

无论如何。我正在创建一个游戏,我的意图是让一个按钮打开一个随机的活动。像这样:活动1->活动5->活动4->活动18等等。而不打开已经播放的相同活动。但现在我的问题是,我有20个活动,但有时只有12个活动才会出现在我的应用程序上;游戏结束";。我如何确保它总是能加载最大的活动?thanx。

我的代码是这样工作的:

主要活动.class

int r = new Random().nextInt(activitylist.size());
Class activity = activitylist.remove(r);
switch (r) {
case 1:
activity = defransman.class;
activitylist.remove(defransman.class);
break;
case 2:
activity = crazycaps.class;
activitylist.remove(crazycaps.class);
break;
case 3:
activity = max.class;
activitylist.remove(max.class);
break;
case 4:
activity = michael.class;
activitylist.remove(michael.class);
break;
case 5:
activity = youngest.class;
activitylist.remove(youngest.class);
break;
case 6:
activity = driverlincense.class;
activitylist.remove(driverlincense.class);
break;
}
Intent startgame = new Intent(getBaseContext(), activity);
startgame.putExtra("ACTIVITY_LIST", activitylist);
startActivity(startgame);
}
});
}

}

活动2.class:

公共类最佳衣服扩展了AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bestclothes);
Button nextpage = findViewById(R.id.BTBesteKleren);
nextpage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArrayList<Class> aktivitet = new ArrayList<>();
Bundle extras = getIntent().getExtras();
aktivitet = (ArrayList<Class>) extras.get("ACTIVITY_LIST");
if (aktivitet.size() ==0) {
Toast.makeText(bestclothes.this, "Game over", Toast.LENGTH_SHORT).show();
} else {
int r = new Random().nextInt(aktivitet.size());
Class activity = aktivitet.remove(r);
switch (r) {
case 1:
activity = aktivitet.get(0);
aktivitet.remove(0);
break;
case 2:
activity = aktivitet.get(1);
aktivitet.remove(1);
break;
case  3:
activity = aktivitet.get(2);
aktivitet.remove(2);
break;
case 4:
activity = aktivitet.get(3);
aktivitet.remove(3);
break;
case 5:
activity = aktivitet.get(4);
aktivitet.remove(4);
break;
case 6:
activity = aktivitet.get(5);
aktivitet.remove(5);
break;  
}  
Intent intent = new Intent(getBaseContext(), activity);
intent.putExtra("ACTIVITY_LIST", aktivitet);
startActivity(intent);

等等。I

停止从列表中删除活动,就像在每个切换情况下所做的那样。

相反,将每个打开的活动的位置保存在某个arraylist中,然后检查arraylist是否包含用户已使用arrayList.contains(position)打开的任何位置。

如果arraylist包含以前访问过的活动位置,则返回true。如果arraylist包含该位置,则在相同范围内再次生成一个随机数。

把这个逻辑放在所有开关情况下&您将只获得以前未打开的活动。:(

最新更新