2013-11-16 3 views
0

Итак, я могу создать случайную активность с помощью генератора случайных чисел, но то, что я хочу, - это если пользователь переходит к активности 2, то пользователь не должен возвращаться к активности 1, где пользователь уже был.Android - начать случайную активность, но не повторить?

У меня есть 10 видов деятельности, и на каждом мероприятии должен быть генератор случайных чисел, поэтому пользователь переходит к случайному действию.

Пример:

Act.1 ---> Act. 3 
Act.3 ---> Act. 9 
Act.9 ---> Act. 2 
Act.2 ---> Act. 6 

Примечание: Так что от деятельности 2 пользователь не должен быть в состоянии вернуться к прежней деятельности.

Спасибо

ответ

0

Что вы можете сделать, это обходиться с дополнительными услугами в комплекте. http://miragemiko.wordpress.com/2010/03/20/android-using-bundle-for-sharing-variables/

В этом случае, вы можете передать ваши строки вокруг в качестве ключей в связке с намерениями, которые вы используете, чтобы прыгать вокруг деятельности, и, следовательно, быть в состоянии гарантировать, что вы никогда не будете повторять действия.

+0

Я понимаю, что на сайте показывает про передачу переменных. – user2547460

+0

Но я не понимаю последнюю часть, которую вы сказали: «Как я могу это сделать»? Можете ли вы поместить это в код? то я приму ваш ответ !! – user2547460

+0

Итак, вы замечаете, как вы можете поместить вещи в пучок: 'Bundle bundle = new Bundle(); ' ' bundle.putString ("myValue", myValue); ' Так что действительно плохой способ сделать это (неэффективным) - это сделать что-то вроде« 1 »,« 2 »и т. Д. Вместо« myValue », в зависимости от того, какой случай вы пытались сделать, а затем вы может сделать что-то вроде «посещенного» вместо второго myValue, чтобы вы могли узнать, что посетили, а что нет. Итак, что-то вроде 'bundle.putString (" 1 "," visited ")' затем позволит вам выполнить 'bundle.getString (« 1 »)', а затем убедитесь, что вещь равна «посещена», если вы посетили , –

0

Держите ArrayList с номерами от 1 до 10. С помощью генератора случайных чисел, выбрать один индекс ArrayList, удалить элемент в этой позиции и перейти эту деятельность. Затем произвольно выберите один из 9 левых и сделайте то же самое до тех пор, пока ArrayList не будет пустым.

Пример:

// Create arraylist of pending activities 
ArrayList<Integer> pendingActivities = new ArrayList<Integer>(); 
for(int i = 1; i <= 10; i++) pendingActivities.add(i); 

// Randomly pick activity  
Random rand = new Random(); 
while(!pendingActivities.isEmpty()) { 
    int nextIndex = rand.nextInt(pendingActivities.size()); 
    int nextActivity = pendingActivities.remove(nextIndex); 
    System.out.println("Next activity: "+nextActivity); 
} 

Заменить println с кодом, чтобы перейти к этой деятельности.

+0

если вы могли бы поместить это в образец кода, тогда я помету ваш ответ как принятый – user2547460

+0

@ user2547460 отредактировал ответ –

+0

спасибо !!!! очень !! вы много помогли! – user2547460

Смежные вопросы