2014-01-22 3 views
0

У меня активность A, B и C.Случайное число без перезапуска дубликата, когда активность

В активности B У меня есть генератор случайных чисел и Collections.shuffle(). Это дает мне случайное число в следующей деятельности С.

Затем я использовать кнопку, чтобы вернуться к активности B и снова перезапустить весь процесс, , но это дает мне дублирует в C, так как весь Collections.shuffle() перезапуск I Угадай.

Мне нужно получить случайные числа без дубликатов, когда я перехожу от B к C, делая это повторно.

АКТИВНОСТЬ B:

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main); 


Button a = (Button) findViewById(R.id.button1); // Here the R.id.button1 is the button from you design 
a.setOnClickListener(new View.OnClickListener() { 
public void onClick(View arg0) { 
    ArrayList<Integer> randomNumber = new ArrayList<Integer>(); 
    for (int i = 1; i <= 17; ++i) randomNumber.add(i); 
    Collections.shuffle(randomNumber); 
    int random = randomNumber.get(0); 
Intent intent=new Intent(MainActivity.this,Main2Activity.class); 
intent.putExtra("Value",random); 
startActivity(intent); 
} 
    }); 

Button b = (Button) findViewById(R.id.button2); // Here the R.id.button1 is the button from you design 
b.setOnClickListener(new View.OnClickListener() { 
public void onClick(View arg0) { 
    ArrayList<Integer> randomNumber = new ArrayList<Integer>(); 
    for (int i = 18; i <= 35; ++i) randomNumber.add(i); 
    Collections.shuffle(randomNumber); 
    int random = randomNumber.get(0); 
    Intent intent=new Intent(MainActivity.this,Main2Activity.class); 
    intent.putExtra("Value",random); 
    startActivity(intent); 
} 
    }); 

Button c = (Button) findViewById(R.id.button3); // Here the R.id.button1 is the button from you design 
c.setOnClickListener(new View.OnClickListener() { 
public void onClick(View arg0) { 
    ArrayList<Integer> randomNumber = new ArrayList<Integer>(); 
    for (int i = 36; i <= 50; ++i) randomNumber.add(i); 
    Collections.shuffle(randomNumber); 
    int random = randomNumber.get(0); 
    Intent intent=new Intent(MainActivity.this,Main2Activity.class); 
    intent.putExtra("Value",random); 
    startActivity(intent); 

} 
    }); 

АКТИВНОСТЬ C:

public class Main2Activity extends Activity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main2); 

    Button back = (Button) findViewById(R.id.buttonback); // Here the R.id.button1 is the button from you design 
back.setOnClickListener(new View.OnClickListener() { 
public void onClick(View arg0) { 
odstevalnik.cancel(); 
Intent i = new Intent(Main2Activity.this, MainActivity.class); 
startActivity(i); 
} 
    }); 

    Bundle bundle = getIntent().getExtras(); 
int random = bundle.getInt("Value"); 
TextView text = (TextView) findViewById(R.id.textView1); 
if (random==1) { 
    text.setText("blabla"); 
    image.setImageResource(R.drawable.img2); 
    stopnja.setImageResource(R.drawable.stopnja1); 
    Toast.makeText(getApplicationContext(), "blabla", 
    Toast.LENGTH_LONG).show(); 
} 

    ..... 
+0

Не могли бы вы проиллюстрировать, что вы хотите на примере? Когда вы вызываете активность C из B и получаете, например, число «6», вы хотите иметь «6» из любых будущих случайных совпадений, правильно? – NitroNbg

+0

Точно, при переходе на C из B повторно я хочу 6 из. – user3041073

ответ

1

Создать коллекцию случайного числа в OnCreate активности B. отправить Таким образом, коллекция не будет перезапущен. отправить номера из списка

int random = randomNumber.get(i++); 
Смежные вопросы