2016-08-02 11 views
0

Ich erstelle eine App, die mehrere 'Raster' mit einem Titel und Bildminiaturen in jedem Rasterfeld enthält.Mehrere Instanzen einer Aktivität - ist das eine schlechte Übung?

In jedem Grid wird ein anderer Inhalt gespeichert.

Ich habe bisher eine Aktivität erstellt, die eine Instanz von GridView initialisiert und einen benutzerdefinierten GridAdapter verwendet. (Siehe Foto für das, wie es derzeit aussieht) Ich wollte nach links wischen, um ein neues leeres Raster zu erstellen, in das der Benutzer Inhalte hochladen kann. Es kann irgendwo bis zu 50 Gitter geben.

Ich lerne gerade, wie man die Geste implementiert, und wie man eine neue Instanz der Aktivität erstellt, aber von dem, was ich gelesen habe, denke ich, dass ich es schlecht entworfen habe.

Ich plante für jedes Raster eine Aktivität (jede nimmt den gesamten Bildschirm ein).

Ich sah eine Aktivität als eine Klasse in Java, die Sie Instanzen aus einem Blueprint erstellen können. Ich dachte, wenn ich ein 'Grid' erstellen würde, könnte ich jedes Mal eine neue Instanz davon erstellen. Fragmente erschienen zu der Zeit nicht angemessen, da die Android-Tutorials sie oft als Komponenten zum Hinzufügen von Komponenten bezeichneten.

Ich fange an zu denken, dass ich hier die falsche Methode verwende und ich muss es ändern? Kann mich jemand in die richtige Richtung führen? Ich habe den ganzen Code bereits geschrieben - wenn ich es ändern muss, teilen Fragmente und Aktivitäten irgendwelche Methoden, was bedeutet, dass ich etwas Arbeit behalten kann?

enter image description here

+0

Sie hören gerade Swipe-Gesten und starten dann Aktivitäten? – Shaishav

+0

Hallo @Shaishav - das ist das bisschen, was ich gerade mache. Ich habe eine Aktivität erstellt, die eine Instanz von GridView initialisiert und einen benutzerdefinierten GridAdapter verwendet. Ich lerne gerade, wie man die Geste implementiert, und wie man eine neue Instanz der Aktivität erstellt, aber von dem, was ich gelesen habe, denke ich, dass ich es falsch gemacht habe ... – javapalava

+0

Ich habe versucht, es zu klären ein bisschen besser – javapalava

Antwort

1

Wie Sie erwähnt haben, werden Gesten Aktivitäten für die Verwendung von Inhalten in Ihrem Anwendungsfall Betrieb, in dem Schalt ausgelöst werden kann auf jeden Fall schwer und unhandlich Ressource sein. Da Sie Swipe-Gesten erwähnt haben, glaube ich, dass Fragmente in dieser Situation sehr leicht wären. In der Tat würde ich vorschlagen, dass Sie sogar ViewPager betrachten, die sogar Fragmente für Sie recycelt und Benutzererfahrung optimiert, indem Sie das nächste Fragment für eine glattere Erfahrung laden. Es wird auch Swipe-Gesten für Sie behandeln!

[UPDATE]

Basierend auf Ihrer aktualisierten Erklärung des Benutzer fließen, ich bin sicher, dass die ViewPager als bessere Option ergehen würde vor allem, weil es für eine viel bessere Kontrolle und Benutzerführung ermöglicht. Es kümmert sich auch um die Handhabung von Wischgesten und Speicherproblemen, die mit diesen Arten von Datenflüssen einhergehen. Darüber hinaus ermöglicht es sogar die Anzeige von Seitentiteln und unteren Registerkarten, falls Sie sie benötigen.

Es wird verlangt, dass jede seiner Seiten ein Fragment ist (Ihre ViewPager wird sich selbst in einer Activity befinden). Sobald der Benutzer auf eine Rasterzelle klickt, können Sie ein Dialogfenster anzeigen, aus dem Benutzereingaben erfasst werden können. Diese Einstellung sollte meiner Meinung nach optimal für Sie sein.

+0

Hallo @Shaishav. Danke für die Hilfe. Also empfiehlst du jedem Gitter ein Fragment, mehrere Fragmente und nur eine Aktivität? Jedes Mal, wenn Sie wischen, bleibt es bei der gleichen Aktivität, lädt aber ein neues Fragment? Jedes Rasterquadrat enthält ein anderes View-Objekt.Funktioniert ViewPager in dieser Situation? Ich habe oben ein Foto hinzugefügt, um mich zu erklären. Vielen Dank für Ihren Rat. – javapalava

+0

@javapalava Ich denke, ich missverstanden. Ich dachte zunächst, dass Ihr Layout wie Ihr Bild aussehen würde und wenn der Benutzer dann auf eine Gitterzelle klickt, würde es auf Vollbild gehen und der Benutzer kann nach links/rechts wischen, um andere Zellen im Vollbildmodus zu überprüfen. Ich bin verwirrt, wie wird der Benutzer mit dem Bild oben interagieren. Was fließt hier? – Shaishav

+0

Lassen Sie uns vielleicht das Gesten-Element ignorieren - ich denke, ich verwirre die Dinge, und es ist vielleicht nicht einmal relevant für das, was ich herausfinden möchte. Es gibt viele (bis zu 50) dieser Grids (auf die der Benutzer jedoch zugreift), die in der App gespeichert sind, und jeder enthält unterschiedliche Inhalte. Ich habe den Code für einen geschrieben, aber jetzt muss ich dem Benutzer ermöglichen, viele zu erstellen, und ich versuche nur herauszufinden, was ein Fragment sein soll und was für eine Aktivität. – javapalava