Рандомизировать между действиями - PullRequest
0 голосов
/ 24 января 2012

Если у меня есть 3 действия, как бы я организовал рандомизацию между действиями, чтобы она выбирала одно из трех и отображала это?

Пока что я попробовал следующий код:

package com.ICTrevisionapp;

import java.util.Random;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class randomquiz extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.quiz);  
        Button generate = (Button)findViewById(R.id.generate); 
        generate.setOnClickListener(generateListener); 
    } 
    private OnClickListener generateListener = new OnClickListener() { 
        public void onClick(View v){ 
            Random generator = new Random(); 
            int number = generator.nextInt(2); 
            Intent intent = null; 
            switch(number){ 
            case 0: 
            intent = new Intent(randomquiz.this, topicstotopicone.class); 
            break; 
            case 1: 
            intent = new Intent(randomquiz.this, topicstotopictwo.class); 
            break; 
            case 2: 
            intent = new Intent(randomquiz.this, topicstotopicthree.class); 
            break; 
            } 
            startActivity(intent); 
        }
};
}

Это также верно для манифеста:

  <activity
        android:name=".randomquiz"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.topicstotopicone" />
            <action android:name="android.intent.action.topicstotopictwo" />
            <action android:name="android.intent.action.topicstotopicthree" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity

Однако при этом запускается приложение, но при нажатии кнопки ничего не получается.

1 Ответ

3 голосов
/ 24 января 2012

ваш код не имеет особого смысла. этого будет достаточно:

public void onClick(View v){
    Random generator = new Random();
    int number = generator.nextInt(3);
    Intent intent = null;
    switch(number){
    case 0:
    intent = new Intent(randomquiz.this, topicstotopicone.class);
    break;
    case 1:
    intent = new Intent(randomquiz.this, topicstotopictwo.class);
    break;
    case 2:
    intent = new Intent(randomquiz.this, topicstotopicthree.class);
    break;
    }
    startActivity(intent);
}

Ваша деятельность также должна быть объявлена ​​в вашем Android Manifest.xml:

<activity
    android:name=".randomquiz"
    android:label="@string/app_name" >
    <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".topicstotopicone"
    android:label="@string/app_name"
</activity>
<activity
    android:name=".topicstotopictwo"
    android:label="@string/app_name"
</activity>
<activity
    android:name=".topicstotopicthree"
    android:label="@string/app_name"
</activity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...