开始随机活动

时间:2013-11-08 21:30:36

标签: android arrays android-intent android-activity

是否可以启动随机活动,例如单击一个按钮?

我已经看到了一些带开关/外壳的解决方案,但我真的不想做这样的事情:

case 1: startintent1;
break; 
case 2: startintent2;
break; 
...
case 100: startintent100;
break; 

是否可以存储用于在数组中打开活动的代码,然后使用Random从该数组中选择一个项目?

提前致谢!

4 个答案:

答案 0 :(得分:1)

我不知道使用开关盒有什么问题,但我想你可以把你的活动放在一个数组中,然后用一个0到n的随机整数来选择一个。

答案 1 :(得分:1)

Class c = Class.forName("classname");
Method m = c.getMethod("startintent"+i);
m.invoke(this);

这将按名称调用。如果所有功能都被一致命名。然后使用随机附加一个数字。

答案 2 :(得分:1)

您可以创建这样的类数组:

Class<?>[] classes = new Class<?>[] { MainActivity.class, DatabaseActivity.class };

或者使用ArrayList:

ArrayList<Class<?>> classes = new ArrayList<Class<?>>();
classes.add(MainActivity.class);

然后使用随机数作为索引。

Intent i = new Intent(getActivity(), classes[randomNumber];
or
Intent i = new Intent(getActivity(), classes.get(randomNumber);

startActivity(i);

答案 3 :(得分:0)

试试这个:

x.setOnClickListener(new OnClickListener(){

private static final Random random = new Random();

@Override
public void onClick(View v) {
 //TODO --place your activity in an array list here 
    int randomMsgIndex = random.nextInt(yourarraylist.length - 1);
//TODO-start that activity using intents.
}

});