0

如果单击按钮,是否可以开始随机活动?

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

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

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

提前致谢!

4

4 回答 4

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

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

于 2013-11-08T21:40:24.050 回答
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);
于 2013-11-08T21:51:32.497 回答
1

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

于 2013-11-08T21:33:03.780 回答
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.
}

});

于 2013-11-08T21:54:01.383 回答