Ich habe eine kurze Frage zur Erstellung von GUIs in Android. Welcher Weg ist besser, XML oder Codierung? Ich lese immer, dass XML viel besser ist, aber stellen Sie sich vor, Sie haben eine ScrollView. Innerhalb der ScrollView befindet sich ein RelativeLayout. Darin soll es mehrere Zeilen mit einem ImageView neben einem TextView neben einem RadioButton geben. Die Anzahl der Zeilen kann variieren. Ist es wirklich besser, beispielsweise 50 Ansichten im XML zu erstellen oder eine Schleife im Code zu verwenden, in der diese Ansichten erstellt werden?
Antworten
Zu viele Anzeigen?Jedes hat seine Vor- und Nachteile. Hier sind nur einige Beispiele:
XML
- pros -> schnelle GUI-Entwicklung, sauberer Code
- cons -> statisch
Dynamisch (Code)
- pros -> in der Lage, auf Laufzeitbedingungen zu reagieren
- cons -> mehr Code, was zu schlechterer Wartbarkeit und potenziell fehlerhafterer führen kann
Dynamischer Inhalt wird natürlich dynamisch hinzugefügt. Ihr Beispiel würde also etwas Java-Code erfordern. Sie sollten den dynamischen Teil jedoch nur programmatisch hinzufügen, sodass Sie weiterhin ein XML-Dokument für die statischen Teile verwenden würden (es ist sehr ungewöhnlich, dass ein Layout vollständig dynamisch ist).
Wenn Sie eine feste Anzahl von Ansichten haben, würde ich tatsächlich 50 davon in XML schreiben, anstatt sie mit einer Schleife zu erstellen. Ich vermute, Sie fragen sich nach Code-Duplizierung und soweit ich weiß, tritt diese bei der Verwendung von XML tatsächlich auf.
(Eine Möglichkeit, die Code-Duplizierung innerhalb von XML zu minimieren, besteht in der Verwendung von Stilen und Themen)
Ich stimme dem obigen zu. XML ist ein besseres Vorgehen für diese, auch wenn Sie dynamische Updates benötigen, können Sie dennoch XML-Bits und -Stücken verwenden, um den Inhalt wiederzugeben. Ihr Code wird auf XML-Elementen basieren, aber XML-Dateien werden unabhängig sein. Daher, wenn Sie eine Funktionalität im Code brechen, wissen Sie, dass es Ihre Geschäftslogik ist, die kaputt ist, nicht der UI-Teil, was es einfacher macht, Probleme leicht zu entwickeln und zu finden.
Warum verwenden Sie nicht lieber einen ListView anstelle eines ScrollView. Es wird einfacher zu implementieren sein und die Leistung sollte damit besser sein.
Erstellen Sie eine XML-Datei mit einem ListView und implementieren Sie in Ihrer Aktivität Ihren eigenen Adapter, um die Zeilen zu instanziieren. Sie können viele Tutorials im Internet finden, die darüber sprechen, da bin ich sicher, dass Sie finden, was Sie brauchen! Viel Glück.