0
  • Ich habe eine Aktivität (MainActivity) und entsprechende XML-Datei. Xml-Datei enthält die Symbolleiste am oberen Rand, dann die Schieberegler dann dann Viewpager.Android-Fragment, Viewpager, Aktivitätsrelation

  • Ich habe 3 Fragmente (entsprechende XML-Dateien) und 3 SlidingTabs. Tab 1 ist verbunden mit Fragment 1 und 2 mit 2 und 3 mit 3.

  • Wenn ich irgendwelche Operationen an den Ansichten in den Fragmenten durchführe, muss ich den gesamten Code in MainActivity oder im Fragment schreiben?
  • Muss ich nur die Ansicht aus dem Fragment für diesen Pager zurückgeben oder sollten alle Codes für diese Seite auch dort im Fragment sein?

Für Ex:

Wenn ich ein paar Daten mit contentresolver bin abrufen und die Daten über die Listenansicht im ersten Fragment bevölkern, Ebenso, wenn ich einige andere Operationen tue und Anzeigen der Details in Fragment 2 und 3, Muss ich alle Codes in das entsprechende Fragment selbst schreiben oder muss ich in MainActivity schreiben.

Kann jemand die Antwort zu diesem oder irgendeinem Link zur Verfügung stellen, der nützlich sein wird.

Antwort

0

Wenn Sie Tabs mit Pager anzeigen verwenden, fungiert MainActivity nur als Container und enthält Fragmente. Sie können also den entsprechenden Code nur auf entsprechende Fragmente schreiben. Alles, was für alle Fragmente benötigt wird, können Sie in MainActivit schreiben. Für Beispiel Symbolleisten Titeländerungen, Option Menü ect ..

+0

Vielen Dank! Wenn ich für alle Fragmente eine einzelne Aktivität verwende, wie bekomme ich den Kontext in Fragmenten. Welche muss ich verwenden? getActivity() oder getApplicationContext()? – akm

+0

können Sie getActivity() für den Kontext verwenden. Außerdem können Sie Ihre Aktivitätsinstanz wie MainActivity mainActivity = (MainActivity) -Kontext initialisieren; –

0

Ja müssen Sie nur die Ansicht aus dem Fragment für diese Pager.And alle Codes für diese Seite sollte innerhalb Fragment selbst sein.

Nur gemeinsame Codes oder wenn Sie Callback-Methoden aus dem Fragment definieren möchten, können wir Ihre Implementierungen in Ihrer Aktivität durchführen.

Verweisen Sie auf den folgenden Link, wo Sie eine Vorstellung von der Implementierung Ihrer Registerkarten mit einigen gebräuchlichen Materialdesignsteuerelementen erhalten.

https://github.com/chrisbanes/cheesesquare

+0

Danke! Also, wenn ich 3 Fragmente verwende, muss ich nur den gemeinsamen Code in MainActivity schreiben. Ich werde alle Codes in Fragmente selbst schreiben müssen. Die MainActivity wird alle 3 Fragmente kontrollieren, oder? Und brauche ich einen leeren Konstruktor in dem ganzen Fragment? – akm

+0

Ya nur wenn irgendein allgemeiner Code wenn erforderlich. Und Sie brauchen keinen leeren Konstruktor, wenn Sie bei der Initialisierung Ihres Fragments den parametrisierten Konstruktor verwenden. –

+0

Ich habe eine Adapterklasse, die die Fragmente an die Seiten bindet, und ich habe keinen Konstruktor im Fragment verwendet, aber ich initialisiere sie im Adapter als Tab1 tab1 = new Tab1(), wie parametrisierter Konstruktor zu verwenden? – akm