2016-08-06 3 views
1

Привет друзья У меня 2 ситуации, но я хочу сделать это случайным образом. Когда пользователь нажимает кнопку, появляется 2 ситуации case0 или case1 случайным образом изменяется. Так текст являются случайным образом меняется слишком ...Случайный случай переключения

* lastImageName и lastImageName2 являются строки переменной ...

Random rand = new Random(); 
int newrand = rand.nextInt(1) + 1; 

switch(newrand) { 
case 0: 
    text1.setText(lastImageName); 
    text2.setText(lastImageName2); 
    break; 
case 1: 
    text1.setText(lastImageName2); 
    text2.setText(lastImageName); 
    break; 
} 

Но это не работает иногда .. Что ранд. проблема?

ответ

0

Снимите +1. Просто выполните это: int newrand = rand.nextInt(2);

0

Random#nextInt(int) генерирует случайное число между 0 включительно и исключение верхней границы. I.e., nextInt(1) всегда будет возвращаться 0. Вместо этого, вы должны просто использовать:

int newrand = rand.nextInt(2); 
1
Random rand = new Random(); 
int a = 0; 
int b = 1; 
int c = random.nextBoolean() ? a : b; 
0

Если у вас есть только два случая, то использовать

boolean state = rand.nextBoolean(); 
text1.setText(state?lastImageName:lastImageName2); 
text2.setText(state?lastImageName2:lastImageName); 

Для кратных вы также можете использовать

Random rand = new Random(); 
int newrand = rand.nextInt() % count;//count = 2 for your case 

switch(newrand) { 
case 0: 
    text1.setText(lastImageName); 
    text2.setText(lastImageName2); 
    break; 
case 1: 
    text1.setText(lastImageName2); 
    text2.setText(lastImageName); 
    break; 
} 
Смежные вопросы