1

当单击按钮时,我试图从活动 1 切换到活动 2。我知道该怎么做。我想不通的是如何获得它,所以 50% 的时间用于活动 2,另外 50% 的时间用于活动 3。对不起,我知道这是一个非常明显的问题。我对此很陌生,所以请您解释一下类似的效果,例如从 5 种不同的指定活动中切换到完全随机的效果。在此先感谢...下面的意图代码。如果可能,请使用我的代码进行解释。

 yes.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent yes1=new Intent(MainActivity.this,Question2.class);
            startActivity(yes1);
4

4 回答 4

1

在我的脑海中,所以它可能无法完全编译:-)但这个想法是合理的

List<Class<? extends Activity>> activities = new ArrayList<Class<? extends Activity>>();
activities.add(Question.class);
activities.add(Question2.class);

Random generator = new Random();
Class<? extends Activity> randomActivity = activities.get(generator.nextInt(activities.size()));

Intent intent = new Intent(this, randomActivity);
startActivity(intent);
于 2013-08-01T22:10:04.217 回答
1

您可以只使用Random类来决定您的下一个意图。请以这个代码片段为例。-

Intent newIntent = null;
Random rand = new Random();

int index = rand.nextInt(4);
switch (index) {
    case 0:
        newIntent = new Intent(this, Question1.class);
    break;
    case 1:
        newIntent = new Intent(this, Question2.class);
    break;
    case 2:
        newIntent = new Intent(this, Question3.class);
    break;
    case 3:
        newIntent = new Intent(this, Question4.class);
    break;
}

startActivity(newIntent);
于 2013-08-01T22:11:10.987 回答
0

您可以设置一个String Array类名,例如

String[] classes = new String[3];
classes[0] = Activity1;
classes[1] = Activity2;
classes[2] = Activity3;

然后使用一个Random数字在它们之间进行选择,然后单击执行类似的操作

 @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Random r = new Random();
        int number = r.nextInt(4);
        String curClass = classes[number);
        Intent yes1=new Intent(MainActivity.this,Class.forName(curClass));
        startActivity(yes1);
于 2013-08-01T22:12:30.253 回答
0

尝试这个:

yes.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View arg0) {
       double rand = Math.random();
       if(rand < 0.5){
           Intent yes1 = new Intent(MainActivity.this, Question2.class);
           startActivity(yes1);
       } else {
           Intent yes2 = new Intent(MainActivity.this, Question3.class);
           startActivity(yes2);
       }
   }
});

5 种不同活动之间的随机切换类似。如果您有这么多不同的活动,您可能可以对其进行优化,这样您就不仅仅是在所有不同选项之间进行分支。

于 2013-08-01T22:08:09.163 回答