我有5种不同的活动,每次活动都应该有一个随机数生成器,以便用户进行随机活动。
实施例:
Act.1 --->法案。 3
Act.3 --->法案。 4
Act.2 --->法案。 5
注意:因此,从活动5开始,用户无法返回上一个活动。
所以这是我在每个活动中写的随机活动,我做了一些变量,所以用户去的下一个活动,下一个活动将知道用户之前访问过的先前活动。 这是用户将开始的第一个活动。
public void on_quiz_1_wrong(View v){
score = score - 2;
String visited = "1";
txtScore.setText(String.valueOf(score) );
int r1 = r.nextInt(4)+1;
if(r1 == 1){
Intent q1 = new Intent(this,Quiz_2.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
else if(r1 == 2){
Intent q1 = new Intent(this,Quiz_3.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
else if(r1 == 3){
Intent q1 = new Intent(this,Quiz_4.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited); // visited = 1 ...> string value
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
else if(r1 == 4){
Intent q1 = new Intent(this,Quiz_5.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
而且,这是另一段代码,我在每个活动中加入,所以现在活动知道上次访问,因此随机数生成器不应该生成用户已经访问过的数字。
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.quiz_3);
txtScore = (TextView) findViewById(R.id.q_result); // declaring the TextView
correctB = (Button) findViewById(R.id.quiz_3_correct);
wrongB = (Button) findViewById(R.id.quiz_3_wrong);
r = new Random();
// Getting previous score
Bundle extras = getIntent().getExtras();
if (extras != null)
{
score = extras.getInt("passScore");
}
txtScore.setText(String.valueOf(score));
Bundle getBundle = getIntent().getExtras();
last_visit = getBundle.getString("passVisit"); // If previous was quiz 1 the---> last_visit is = 1
} // end of onCreate
如果用户想要从之前的活动中获得随机活动:
public void on_quiz_3_wrong(View v){
score = score - 2;
String visited = "3";
txtScore.setText(String.valueOf(score) );
int r1 = r.nextInt(4)+1;
if(r1 == 2 && !last_visit.equals("2") ){
Intent q1 = new Intent(this,Quiz_2.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
if(r1 == 4 && !last_visit.equals("4") ){
Intent q1 = new Intent(this,Quiz_4.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
if(r1 == 5 && !last_visit.equals("5") ){
Intent q1 = new Intent(this,Quiz_5.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
}
}
我知道这很长,我很抱歉,但我想尽可能多地给你详细信息,因为我知道这有点令人困惑。
我试图让这个工作从9月开始,仍然没有运气,我会非常高兴。 谢谢!!!
答案 0 :(得分:2)
尝试在进行任何其他活动之前完成之前的所有活动,如下所示:
if(r1 == 1){
Intent q1 = new Intent(this,Quiz_2.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
finish();
}
else if(r1 == 2){
Intent q1 = new Intent(this,Quiz_3.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
finish();
}
else if(r1 == 3){
Intent q1 = new Intent(this,Quiz_4.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited); // visited = 1 ...> string value
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
finish();
}
else if(r1 == 4){
Intent q1 = new Intent(this,Quiz_5.class);
Bundle bundle1 = new Bundle();
bundle1.putString("passVisit", visited);
q1.putExtras(bundle1);
q1.putExtra("passScore", score);
startActivity(q1);
finish();
}