Tat oder Wahrheit

  • Antworten:14
Lolipopkebab Lolipop
  • Forum-Beiträge: 18

08.07.2013, 22:18:22 via Website

Hallo zusammen

Ich bin an einem Tat oder Wahrheit App.
Da möchte ich 2 Arraylist erstellen wo man per einem Button die Tat arraylist bekommt bei dem anderem die wahrheit.
Wie macht man das aber zuerst wie erstellt man Arraylists??
Ich suche schon sehr lange danach fand aber nichts wäre froh um Hilfe

Lolipopkebab

Antworten
Andy N.
  • Forum-Beiträge: 22.375

08.07.2013, 22:24:56 via App

Hallo,

ich denke der Thread ist besser im Entwicklerforum aufgehoben *schieb*

edit: Bitte sei doch noch so gut und gestalte deinen Threadtitel etwas aussagekräftiger.

— geändert am 08.07.2013, 22:27:09

Viele Grüße,
Andy


OnePlus 3 (Resurrection Remix 5.8.2)
LG G Watch

Regeln | unsere Mods & Admins

Antworten
Timo D.
  • Forum-Beiträge: 182

08.07.2013, 22:40:26 via Website

Da fehlen tatsächlich noch ein paar Informationen. Du kannst auch einfach ein Array erstellen und eine Zufallszahl aus einem bestimmten Intervall erzeugen. Dann kannst du dort auf Inhalte zugreifen.

Und zur ArrayList: Lerne erst einmal Java. Es geht z.B. so:
1ArrayList<String> liste = new ArrayList<String>(); // ArrayListe erzeugen.
2liste.add("..."); // Element zur ArrayListe hinzufügen.
3// Operationen auf der ArrayListe

Für den Button setzt du einen onClickListener. Der Code, der dann beim onClickListener ausgeführt wird, liefert einfach eine ArrayList zurück, die z.B. als Datenfeld erzeugt wurde (also mittels private ArrayList ...). Wie stellst du dir alles genau vor?

— geändert am 08.07.2013, 22:43:08

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Michele

Antworten
Michele
  • Forum-Beiträge: 1.525

09.07.2013, 05:25:45 via Website

Also ich finde für sowas eine ArrayList nicht so toll.

Wie will man denn, wenn man einen Button drückt wie z.B Tat, dann die ArrayList Random bekommen?

Ich würde das ganz anders machen.



LG

Antworten
LitteM
  • Forum-Beiträge: 141

09.07.2013, 06:49:47 via Website

1List<String> list = new ArrayList<String>();
2 list.add ("eins");
3 list.add ("zwei");
4 list.add ("drei");
5 list.add ("vier");
6
7 System.out.println(list.get(myRandom(0,4)));

1public static int myRandom(int low, int high) {
2 return (int) (Math.random() * (high - low) + low);
3 }

Vielleicht hilft dir ja das weiter ;)
Die größe der List kannst ja auch anderst herausfinden und dann die statischen argumente ersetzen.

— geändert am 09.07.2013, 06:53:02

Michele

Antworten
impjor
  • Forum-Beiträge: 1.793

09.07.2013, 12:24:27 via App

Eine ArrayList ist schon ziemlich praktisch, da nach jeder Runde ja ein Eintrag aus der entsprechenden Liste gelöscht werden soll( soll ja nichts doppelt vorkommen)

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Michele

Antworten
Michele
  • Forum-Beiträge: 1.525

09.07.2013, 18:41:09 via Website

Ja das stimmt.

Sieht gut aus LittleM. :D

Nur was mich stört ist.

Du fügst ja per:
1list.add ("eins");
2list.add ("zwei");
3list.add ("drei");
4list.add ("vier");

immer was neues hinzu.
Stell dir vor du machst 50 sachen für Tat und Wahrheit.
Dann ist das so riesig in der Class.
Kann man das nicht kleiner machen oder anders?
Vielleicht einfach eine andere Class erstellen und dann da alles erstellen
und mit
1ArrayClass arrayClass = new ArrayClass();

sich das in der Activity holen?

Hoffe Ihr versteht was ich meine.



LG

— geändert am 09.07.2013, 18:42:48

Antworten
LitteM
  • Forum-Beiträge: 141

09.07.2013, 18:59:21 via Website

Könntest alle Fragen/Aktionen getrennt in Textdokumenten ablegen und deren Inhalt beim app start in die passende list laden. Dann kannst auch einfach neues hinzufügen. Hätte ich jetzt zumindest so gemacht :)
Kann aber gut sein dass es dafür sinnvolleres gibt ;)

Michele

Antworten
Michele
  • Forum-Beiträge: 1.525

09.07.2013, 20:01:52 via Website

LitteM
Könntest alle Fragen/Aktionen getrennt in Textdokumenten ablegen und deren Inhalt beim app start in die passende list laden. Dann kannst auch einfach neues hinzufügen. Hätte ich jetzt zumindest so gemacht :)
Kann aber gut sein dass es dafür sinnvolleres gibt ;)

Stimmt hört sich gut an.

Und wie geht sowas?
Einfach in einer Text.txt Datei z.B?

Nun bin ich neugierig.



LG

— geändert am 09.07.2013, 20:02:03

Antworten
Lolipopkebab Lolipop
  • Forum-Beiträge: 18

09.07.2013, 20:11:54 via Website

Danke für alle Antworten

Antworten
Timo D.
  • Forum-Beiträge: 182

09.07.2013, 20:15:19 via Website

Es geht mittels BufferedReader.
1BufferedReader br = new BufferedReader(new FileReader(file));
2String line;
3while ((line = br.readLine()) != null) {
4 // Prozess.
5}
6br.close();
Sollte auch in Android gehen. So macht man es jedenfalls in Java. Die Zeilen sind dann durch einen Zeilenumbruch getrennt.

Btw.: Es wäre gut, wenn hilfreiche Beiträge positiv bewertet werden. So erkennen später andere Nutzer schneller die Lösung.

— geändert am 09.07.2013, 20:16:24

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Michele

Antworten
impjor
  • Forum-Beiträge: 1.793

09.07.2013, 20:46:29 via App

Das mit der Datei ist tatsächlich eine gute Idee.
In Android geht es aber noch einfacher:
Eine Datei ./res/values/array.xml erstellen mit folgendem Inhalt:
1<?xml version="1.0" encoding="utf-8"?>
2<resources>
3 <string-array name="tat">
4 <item>Tat 1</item>
5 <item>2. Tat</item>
6 <item>Tat Nummer drei</item>
7 </string-array>
8 <string-array name="wahrheit">
9 <item>Wahrheit 1</item>
10 <item>Wahrheit 2</item>
11 <item>Wahrheit 3</item>
12 </string-array>
13</resources>

In Android kann man dann ganz bequem das auslesen:
1String[] tatenArr = getResources().getStringArray(R.array.tat);
2//Wenn nötig
3ArrayList<String> taten = new ArrayList(Arrays.asList(tatenArr));
Grüße

— geändert am 09.07.2013, 20:47:34

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Lolipopkebab LolipopSan BlarnoiMichele

Antworten
Timo D.
  • Forum-Beiträge: 182

09.07.2013, 21:56:58 via Website

Ich empfehle auch auf jeden Fall die Variante von impjor. Denn wenn du den Text eh schon hart in den Code reinschreiben willst, kannst du es in dem Ordner values speichern. Denn so kannst du im Nachhinein kinderleicht zusätzliche Sprachen ergänzen, indem ein Ordner in der Form values-xx erzeugt wird. Das ist auch die übliche Variante einer mehrsprachigen App. Genauere Informationen bietet die Dokumentation von Android:
http://developer.android.com/guide/topics/resources/localization.html

— geändert am 09.07.2013, 21:57:43

Sichern Sie Ihr Smartphone gegen Diebstahl und erhöhen Sie die Chance, es wiederzufinden. Jetzt neu: Guardian - Anti-Diebstahl Guardian - Anti-Diebstahl Pro https://play.google.com/store/apps/details?id=de.tapps.guardian.pro Guardian - Anti-Diebstahl Trial https://play.google.com/store/apps/details?id=de.tapps.guardian.free

Michele

Antworten
Michele
  • Forum-Beiträge: 1.525

10.07.2013, 00:08:31 via Website

impjor
Das mit der Datei ist tatsächlich eine gute Idee.
In Android geht es aber noch einfacher:
Eine Datei ./res/values/array.xml erstellen mit folgendem Inhalt:
1<?xml version="1.0" encoding="utf-8"?>
2<resources>
3 <string-array name="tat">
4 <item>Tat 1</item>
5 <item>2. Tat</item>
6 <item>Tat Nummer drei</item>
7 </string-array>
8 <string-array name="wahrheit">
9 <item>Wahrheit 1</item>
10 <item>Wahrheit 2</item>
11 <item>Wahrheit 3</item>
12 </string-array>
13</resources>

In Android kann man dann ganz bequem das auslesen:
1String[] tatenArr = getResources().getStringArray(R.array.tat);
2//Wenn nötig
3ArrayList<String> taten = new ArrayList(Arrays.asList(tatenArr));
Grüße

Stimmt da war ja was mit der array.xml :*)

Das sieht echt super aus. Danke euch. So lernt man dazu.


LG

Lolipopkebab Lolipop

Antworten
TheEvilOne
  • Forum-Beiträge: 311

10.07.2013, 08:53:29 via App

Ich geb Dir den Tipp dem Nutzer die Möglichkeit zu geben eigene Fragen/Aufgaben hinzuzufügen (bei uns heisst das Spiel übrigens Wahrheit oder Pflicht). Rein statische Sachen sind immer sehr eingeschränkt.

Ich würde dabei dann auf eine Datenbank oder, falls Dir die Implementation zu schwierig ist, auf eine Datei setzen, die Du im internen Speicher ablegst und eben dort Aufgaben und Fragen hinterlegen.

Die vorgegebenen Inhalte in die Values schreiben ist ne gute Möglichkeit

— geändert am 10.07.2013, 08:56:57

Lolipopkebab Lolipop

Antworten