kosmus
Erfahrenes Mitglied
- 62
Ich würde vorschlagen, du machst die Server Antwort einzeilig mit Semikolons getrennt. Ein new line verbraucht mindestens so viel Byte wie ein Semikolon, und falls da noch ein carriage return dahinter ist sogar mehr. Dann könntest du dir das einfügen in der doInBackground Methode sparen. Wenn du bei der mehrzeiligen Lösung bleiben willst, würde ich auch hier eine Schleife vorschlagen, dass macht den Code leicht erweiterbar und übersichtlicher (Open-Closed-Prinzip).
ich würde den gesamten String an die aufrufende Klasse zurückgeben, und dort die Auswertung durchführen, das spart einen weiteren Switch und der Task macht nur das wofür er zuständig ist, Anfragen an den Server zu schicken und die Antwort zu empfangen (Single-Responsibility-Prinzip).
Alternativ könntest du mit Varargs arbeiten um das Ergebnis an die aufrufende Klasse zu geben. So oder so bringt es dir nichts neue Referenzen auf die Arrayeinträge zu erzeugen, da du in der Schnittstelle zur aufrufenden Klasse dann wieder ein Array hättest.
Wo genau ist jetzt dein Problem mit den EditText? Mit der Methode setText bekommst du die Werte in die Felder, wie du an die Einzelwerte Kommst, hast du ja schon gepostet. An die einzelnen EditText kommst du mit der methode findViewById in einer Subklasse von Activity, aber das solltest wissen, denn du hast ja auch schon Textfelder ausgewertet um den Aufruf des AsyncTask zu programmieren.
ich würde den gesamten String an die aufrufende Klasse zurückgeben, und dort die Auswertung durchführen, das spart einen weiteren Switch und der Task macht nur das wofür er zuständig ist, Anfragen an den Server zu schicken und die Antwort zu empfangen (Single-Responsibility-Prinzip).
Alternativ könntest du mit Varargs arbeiten um das Ergebnis an die aufrufende Klasse zu geben. So oder so bringt es dir nichts neue Referenzen auf die Arrayeinträge zu erzeugen, da du in der Schnittstelle zur aufrufenden Klasse dann wieder ein Array hättest.
Wo genau ist jetzt dein Problem mit den EditText? Mit der Methode setText bekommst du die Werte in die Felder, wie du an die Einzelwerte Kommst, hast du ja schon gepostet. An die einzelnen EditText kommst du mit der methode findViewById in einer Subklasse von Activity, aber das solltest wissen, denn du hast ja auch schon Textfelder ausgewertet um den Aufruf des AsyncTask zu programmieren.


aber manchmal sieht man den Wald vor lauter Bäumen nicht mehr. Insofern kann ich auch die Hinweise von @kosmus durchaus nachvollziehen - je weniger Code um so übersichtlicher wird es sicherlich sein aber ich finde, Schleifen können einem sicherlich und gewiss einiges an Code ersparen aber wenn man dann nachher nur noch eine Schleife nach der anderen hat finde ich persönlich umständlicher den Code nachvollziehen zu können. Mit switch Case sehe ich genau an welcher Stelle was abgefragt und darauf hin veranlasst wird. Mag auch durchaus sein, dass das durchaus jetzt in meinen App- und Android-Anfängen so ist und ich irgendwann später - wenn ich da auch versierter drin bin - vielleicht auch mehr mit Schleifen arbeite. Aber auch bei meinen bisherigen "Arbeiten" habe ich aber mehr mit If/Else oder Select/Case (so heißen die Switch/Case-Anweisungen in VB) gearbeitet weil ich es dann auch für einen Außenstehenden als nachvollziehbarer empfinde.