2012-01-24 10 views
0

3つのアクティビティがある場合、アクティビティ間でランダム化を設定して、3つのうち1つを選択して表示する方法を教えてください。アクティビティ間のランダム化

これまでのところ、私は次のコードを試してみました:

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 

ただし、これはアプリケーションを実行しますが、ボタンが押されたとき何も成就しません。

答えて

3

あなたのコードはあまり意味がありません。これを行うには十分だろう。

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> 
+0

私はこれを試してみましたが、まだ何もまだ起こりません。ボタンは、他のページのいずれにもリンクしません。私は私の公開無効をこれで置き換えました。マニフェストに何かを追加する必要がありますか?ありがとうございます – Crazyfool

+1

@azzahayre:マニフェストをまだ追加していない場合は、マニフェストにアクティビティを追加する必要があります。私は 'Intent intent = null;'を 'Intent intent = this;'に置き換えることもできると思います。 – Ghost

+0

マニフェストに3種類のアクションを追加する必要がありますか?ボタンを押すと何も起こりません。 Iveは上のコードを新しいコードに編集しました。これまでの助けをありがとう – Crazyfool

関連する問題