Ich habe dies getan, indem ich ArrayList in Form eines Strings übergeben habe .
Fügen Sie compile 'com.google.code.gson:gson:2.2.4'
in Abhängigkeiten Block build.gradle .
Klicken Sie auf Projekt mit Gradle-Dateien synchronisieren
Cars.java :
public class Cars {
public String id, name;
}
FirstActivity.java
Wenn Sie möchten , passieren Arraylist :
List<Cars> cars= new ArrayList<Cars>();
cars.add(getCarModel("1", "A"));
cars.add(getCarModel("2", "B"));
cars.add(getCarModel("3", "C"));
cars.add(getCarModel("4", "D"));
Gson gson = new Gson();
String jsonCars = gson.toJson(cars);
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("list_as_string", jsonCars);
startActivity(intent);
Holen Sie sich CarsModel nach Funktion :
private Cars getCarModel(String id, String name){
Cars cars = new Cars();
cars.id = id;
cars.name = name;
return cars;
}
SecondActivity.java
Sie müssen importieren java.lang.reflect.Type
;
on onCreate () zum Abrufen von ArrayList :
String carListAsString = getIntent().getStringExtra("list_as_string");
Gson gson = new Gson();
Type type = new TypeToken<List<Cars>>(){}.getType();
List<Cars> carsList = gson.fromJson(carListAsString, type);
for (Cars cars : carsList){
Log.i("Car Data", cars.id+"-"+cars.name);
}
Hoffe das spart Zeit, ich habe es gespart.
Getan
intent.putStringArrayListExtra
istintent.getStringArrayListExtra
odergetSerializableExtra
vorhanden ist? Und was ist, wenn ich Eclipse benutze? Ich muss die Gson-Bibliothek herunterladen und hinzufügen.Wenn Sie die generische Array-Liste mit Klasse anstelle eines bestimmten Typs wie verwenden
EX:
Hier Modell = Klasse
Absicht empfangen wie:
MUSS ERINNERN:
Hier muss die Modellklasse wie folgt implementiert werden : ModelClass implementiert Serializable
quelle
Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, aListModel);
Angenommen, Sie müssen eine Arrayliste der folgenden Klasse von der aktuellen Aktivität an die nächste Aktivität übergeben. // Klasse der Objekte in der Arrayliste // Denken Sie daran, die Klasse über die Schnittstelle Serializable zu implementieren. // Serializable bedeutet, dass das Objekt in einen Strom von Bytes konvertiert wird und hilft um dieses Objekt zu übertragen
In Ihrer aktuellen Aktivität haben Sie wahrscheinlich eine ArrayList wie folgt
um die Arrayliste innerhalb der nächsten Aktivität zu bekommen
quelle
quelle
das ist mein Artikel. Implementieren Sie Serializable und erstellen Sie ArrayList
und in Bundle setzen
und erstellen Sie eine neue Absicht, die Bundle auf Absicht setzt
Geben Sie diesen Code ein, um das Paket zu erhalten
quelle