2014-02-13 50 views
0

我正在使用一個簡單的遊戲。我想洗牌一系列活動。當我按下按鈕時,它會隨機挑選一個活動並使用開始活動意圖加載它。這可能嗎?我應該從哪裏開始?提前致謝。如何洗牌活動列表

編輯

當我嘗試按一下按鈕,它會強制關閉。 這裏就是我有這麼遠

Button shuffle = (Button) findViewById(R.id.button1); 

final ArrayList<Class> activities = new ArrayList<Class>(4); 
activities.add(SampleTwo.class); 
activities.add(SampleThree.class); 
activities.add(SampleFour.class); 
activities.add(SampleFive.class); 


shuffle.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Random rand = new Random(); 
     int random = rand.nextInt(activities.size()); 
     Intent i = new Intent(context, activities.get(random)); 
     startActivity(i); 
     } 

}); 
+0

您是否需要隨機播放列表或者您是否想從列表中選擇隨機活動? –

+0

我想從列表中隨機挑選一個活動。可能嗎? – user3149781

+0

絕對,看我的答案。 –

回答

0

要隨機播放列表,你可以使用方法Collections#shuffle()

Collections.shuffle(list); 

如果你只是需要從列表中挑選,我會做一個隨機的活動:

if(list.size() > 0){ 
    list.get((new Random()).nextInt(list.size())); 
    } 

Random生成僞隨機數,nextInt(數量)將產生從區間0(含)的數 - 數(不包括)。

要啓動一個隨機活動,您不需要一個Activity對象,所有您需要的是它的Class對象。因此,創建一個ArrayList爲:

ArrayList<Class> activities = new ArrayList<Class>(); 
activities.add(SomeActivity.class); 

Intent i = new Intent(context, activities.get(random)); 
startActivity(i); 
+0

如果我使用數組列表創建我的活動列表,該怎麼辦?是否有可能在數組列表中包含一個類?使用它的.add函數? – user3149781

+0

那麼你的列表定義爲ArrayList 或ArrayList ? –

+0

我想調用這個類本身,以便我可以使用它的函數。 – user3149781