2016-04-20 11 views
0

Ich habe eine Anwendung erstellt, die über eine Aktivität verfügt, die eine XML-Datei (XMLPullParser) analysiert und Daten in einer Listview anzeigt. Es klappt. In der gleichen Anwendung habe ich eine andere Aktivität, in der ich verschiedene Fragmente in Abhängigkeit von dem ausgewählten Element der Navigationsschublade legte. Jetzt ist meine Frage: wie kann ich die Daten, die in der Parsing-Aktivität erhalten werden, verwenden und sie in einem Fragment verwalten?Wie in einem Fragment zu analysieren?

+0

Können Sie Ihren nach dem Code? –

Antwort

0

Sie müssen nicht die gesamten analysierten Daten an das Fragment senden.

Sie können eine eigene Handler oder Manager Klasse schreiben, um die Datei für Sie zu analysieren und im Speicher zu behalten (Es kann sich um einige Singleton-Sachen handeln). Sobald Sie es analysiert haben, müssen Sie nur die ID des Artikels übergeben und die Fragment kann es aus Ihrem Handler herausholen.

Sie können, was Sie wollen auf die Fragment wie dies passieren:

public static YourFragment newInstance(int index) { 
    YourFragment f = new YourFragment(); 
    Bundle args = new Bundle(); 
    args.putInt("index", index); 
    f.setArguments(args); 
    return f; 
} 

//To get out 
//... 
Bundle args = getArguments(); 
int index = args.getInt("index", 0); 
//... 
+0

Vielen Dank GaborNovak für Ihre schnelle Antwort. Also habe ich bereits meinen XMLPullParserHandler. Also, wenn ich es richtig verstanden habe, füge ich den Code hinzu, den du in meinem Handler gepostet hast. um Daten an mein Fragment zu übergeben. Was passiert, wenn ich einen vollständigen Adapter oder eine Liste (in der Parser-Aktivität erstellt) an mein Fragment übergeben möchte? Muss ich den Parameter int index mit einem Adapter ändern? danke – NioAnt

+0

Ich denke, es wäre einfacher, eine benutzerdefinierte Manager-Klasse zu implementieren, die in der Lage ist, das XML zu parsen. Es ist nicht gut, XML in einer 'Aktivität' zu analysieren. Sobald Sie in einer anderen Klasse geparst haben, können Sie sie von der 'MainActivity' im Speicher halten und nur einen Index an Ihr' Fragment' übergeben. – GaborNovak

Verwandte Themen