Ich versuche mich erst seit kurzem an kleinen Apps und meine Java-Erfahrung lässt auch zu wünschen übrig. Ich habe mir selbst eine kleine Aufgabe gestellt: Bei einem Spiel soll die Anzahl der Mitspieler flexibel sein, sie wird am Anfang eingegeben. Dann soll jeder Mitspieler seinen Namen eingeben, der dann in einer Liste landet. Ich hatte mir das so vorgestellt: Schleife, die bis zur gewünschten Anzahl von Mitspieler zählt. Im Schleifenkörper wird der Inhalt vom EditText abgefragt, der Button gefunden und sein Listener gesetzt. In der OnClick vom Button wird der Text (= NAme des Spielers) in der Liste abgelegt. Dann wird die Schleife wieder durchlaufen.
Nur leider ist es wohl nicht ganz so seinfach. Ich hab versucht, eine Art Flag zu setzen, das geändert wird, wenn der Button geklickt wurde. Auch nicht erfolgreich. Mittlerweile verursacht das Ganze Endlosschleifen, die mein Smartphone lahmlegen...
Die OnClick sieht so aus:
letzter Versuch der Schleife:
oder ein anderer Ansatz:
Hat jemand einen Tipp für mich? Brauche ich etwa Threads dafür? Oder sind Listener in Verbindung mit Schleifen generell eine blöde Idee?
Nur leider ist es wohl nicht ganz so seinfach. Ich hab versucht, eine Art Flag zu setzen, das geändert wird, wenn der Button geklickt wurde. Auch nicht erfolgreich. Mittlerweile verursacht das Ganze Endlosschleifen, die mein Smartphone lahmlegen...
Die OnClick sieht so aus:
Code:
public void onClick(View v) { playerName = name.getText().toString(); Log.d("neuer name", playerName); if(!listPlayers.contains(playerName)) listPlayers.add(playerName); name.setText(""); pressed = true; }
Code:
TextView playerNumber = (TextView) findViewById(R.id.playercount); name = (EditText) findViewById(R.id.name); save = (Button) findViewById(R.id.bplayername); save.setOnClickListener(savelistener); for (int i = 0; i < numberP; i++) { playerNumber.setText("" + (listPlayers.size()+1)); while(pressed) { Log.d("while schleife", "true"); pressed = false; break; } }
Code:
int i = 0; while(i < numberP) { Log.d("Schleife", ""+listPlayers.size()); TextView playerNumber = (TextView) findViewById(R.id.playercount); playerNumber.setText("" + listPlayers.size()); name = (EditText) findViewById(R.id.name); save = (Button) findViewById(R.id.bplayername); save.setOnClickListener(savelistener); if(pressed!=false) { pressed = false; i++; continue; } else continue; }
Comment