Button einem String aus einer liste zuweisen

C

ChristakaHH

Neues Mitglied
1
Hallo, Ich würde gerne ein Quiz speziell für meine Fußballmannschaft erstellen.

Nun habe ich mir gedacht, daß ich anstatt mehrerer Layouts eine Liste erstelle und dann den Buttons bzw. Textfeld zufällig eine Frage mit den passenden Antworten zuteile. Ich habe mehrere Foren durchsucht aber nichts adäquates gefunden.

Über Anregungen würde ich mich sehr freuen.

Mfg Christaka
 
Ich würde folgendermassen vorgehen:

Du erstellst dir ein geeignetes Layout, z.B. mit 1 TextView für die Frage und x Buttons, einer pro Antwort. Statt Buttons kannst du auch ImageButtons nehmen und sie schöner dastellen.

Für die Quizfragen erstellst du eine Klasse, ich nenne sie mal TriviaQuestion. Diese Klasse hat 1 String für die Frage und ein String-Array oder eine ArrayList für die Antworten. Dann vielleicht noch einen int, mit dem du dir die korrekte Antwort merkst.

Für jede Quizfrage erstellst und füllst du ein TriviaQuestion-Objekt. Alle diese Objekte speicherst du dann in einer ArrayList.

Mit Hilfe der Klasse Random erzeugst du eine Zufallszahl (als int) im Bereich [0 ... (Anzahl_Fragen - 1)].

Mit der ArrayList-Methode get(int i) kannst du ein Objekt aus der zuvor erstellten ArrayList holen. Als Position übergibst du die Zufallszahl.

Du liest aus dem TriviaQuestion-Objekt die Frage und schreibst sie mit Hilfe der Methode setText() in die TextView.

Dasselbe machst du mit den Antworten und den Buttons. Auch die Buttons haben eine setText-Methode.

An die Antwort-Buttons hängst du mit setOnClickListener einen Listener, der auf Klicks reagiert. Damit prüfst du dann, ob der gedrückte Button der richtige war.
 
Zuletzt bearbeitet:
Vielen Dank.

Habe meine Fragen und Antworten über einen Texteditor erstellt und würde diesen gerne benutzen. Also bräuchte ich erstmal eine Lesefunktion die die Anzahl der Fragen zählt und dem Array sagt wie groß es ist. Leider habe ich Probleme mit dem Auslesen der Datei.
Habe die Fragen mittels Komma getrennt und pro Frage eine Zeile genommen.


Muss wohl erstmal mehr über das einlesen von Dateien lernen ;-).
 
Du solltest hier besser kein Array benutzen, sondern eine Liste (in dem Fall eine ArrayList; siehe vorherige Antwort). Diese kannst du beliebig erweitern, ohne vorher eine Größe angeben zu müssen.

Galileo Computing :: Java ist auch eine Insel – 13.3 Listen
Java List und ArrayList (Beispiel)
ArrayList | Android Developers

Du muss die Antworten und Fragen nicht unbedingt in einem File ablegen. Theoretisch könntest du den Text in die Datei /res/string.xml (Resources) schreiben. Das dürfte wesentlich einfacher sein.


String Resources | Android Developers
Context | Android Developers
 
Danke Markus.

Habe jetzt eine neue Klasse Nummern erstellt und in die klasse eine arraylist mit.

public static void main (String[] args){

ArrayList <String> Fragen = new Arraylist <String> ();

Random rnd = new Random();
Int n;

Fragen.add("wer hat die Nummer 13");
Fragen.add("wer hat die Nummer 12");

n = rnd.nextInt(Fragen.size());

String h = Fragen.get(n);

Wie kann ich denn jetzt z.B den String h wo ja eigentlich eine Frage stehen sollte an die mainactivity übergeben um es dort einem Button zuzuweisen?
 
So ganz verstehe ich die Frage nicht. Warum benutzt du die Methode
public static void main (String[] args){}?

Mein Gefühl sagt mir, dass dir hier ein paar elementare Grundlagen fehlen.

Vielleicht hilft Dir die Einführung zur Androidprogrammierung von Google.
https://developer.android.com/training/basics/firstapp/index.html
 
Das stimmt leider. Hab die Methode aus einem Beispielcode.

Eigentlich wollte ich wissen wie man Klassen übergibt also deren Wert.

Werde mich mal durchs Tutorial fuchsen.

Nochmals vielen Dank.
 
Vielleicht solltest du erst mal ein bisschen reines Java programmieren.

Ohne ausreichenden Grundkenntnisse erschließt sich Android nicht unbedingt, und macht es sich unnötig schwer.
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
334
swa00
swa00
MES
Antworten
10
Aufrufe
819
MES
MES
D
  • Data2006
Antworten
14
Aufrufe
486
jogimuc
J
Zurück
Oben Unten