2014-02-13 49 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