Zufalls Activity

  • 6 Antworten
  • Letztes Antwortdatum
S

sacem

Neues Mitglied
0
Hey,
zu meinem Problem:
ich will das beim drücken eines Buttons z.b ZufallsButton eine ZufallsActivity aufgrufen wird. Z.b das beim drücken des Button Zufallsbutton aus mehreren Activitys eins angezeigt wird.
Kann mir jemand ein beispiel code aufschreiben wäre echt nett von euch:rolleyes2: Danke im voraus
 
kein direkter beispiel code aber die Idee dazu:
Mach dir eine Liste oder ein Array mit allen deinen Activities (vom Typ Class).
z.B.
Class[] classArray = {Activity1.class, Activity2.class ..... usw.};
dann generierst du eine Zufallszahl zwischen 0 und der anzahl deiner Activities

Intent intent = new Intent(this, classArray[zufallsZahl] );
und dann startest du die Activity mit:
startActivity(intent);

fertig.
 
Habe es gemacht, geht aber nicht. Die app stürzt ab beim drücken des zufallButtons
 
Zeig mal deinen Code, dann können wir dir helfen :)
 
Oder zumindest die Fehlermeldung,
Wenn ich raten soll würde ich auf IndexOutOfBound tippen.
Aber ohne Code und/oder Fehlermeldung wird das nichts.
 
private Button button1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button1 = (Button) this.findViewById(R.id.button1);
button1.setOnClickListener(this);

}


public <Class> void onClick(View v){
if(v == button1){

Class[] classArray = {Scrn1.class,Scrn2.class,Scrn3.class};

new Intent(this,classArray[3]);

}startActivity(getIntent());
}
}




und als Meldung steht da Zufall angehalten ( Die App habe ich Zufall genannt :lol:)
 
Wie ich es hasse, wenn jmd. die CODE-Tags nicht benutzt :|


Also .. guck dir den Teil nochmal an:
Code:
Class[] classArray = {Scrn1.class,Scrn2.class,Scrn3.class};
new Intent(this,classArray[3]);

1.) Ich dachte du wolltest eine Zufalls-Activity und keine festgelegte?
2.) Guck mal wie groß das Array ist .. und welchen Wert du holen möchtest (Tipp: Man fängt bei 0 an zu zählen und nicht bei 1!).
3.) Eine mögliche Lösung für die Zufallszahl wäre sowas wie:
Code:
random()%arrLen

Außerdem wäre es sinnvoll, die Erstellte Instanz des Intents zwischenzuspeichern, um diese zu starten (oder direkt beim Aufruf von startActivity einsetzen); also statt
Code:
startActivity(getIntent());
solltest du sowas wie
Code:
startActivity(new Intent( ... );
machen.

Und der Aufruf der Funktion startActivity muss auch in die if-Abfrage mit rein (muss nicht, aber sollte, was anderes gibt keinen Sinn).

EDIT: Noch was: Kennst du Logcat? Falls nein, solltest du mal googlen, was das ist und damit umgehen können .. somit sieht man meistens sofort wo der Fehler liegt (sofern man die Java-Grundlagen, bzw. die grundlegenden Exceptions kennt).
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben Unten