Wiem, że można przekazać listę tablic ciągu za pomocą intencji, ale co jeśli jest to lista tablicowa jakiegoś obiektu, który zdefiniowałem? Powiedz listę tablic Bicyles, jak to zrobić?Tablica Lista obiektów za pośrednictwem intencji
Odpowiedz
Możesz sprawić, aby Twoje obiekty zaimplementować Parcelable i użyć putParcelableArrayListExtra
. Alternatywnie możesz serializować obiekty w jakiś sposób i umieścić tablicę bajtów swoich serializowanych obiektów.
kodu przykład pomógłby – adit
@adit - Aby uzyskać przykład kodu na temat tworzenia Parceli, spójrz na [dokumenty dla Parcelable] (http://developer.android.com/reference/android/os/Parcelable.html). Następnie możesz użyć ArrayList
mając problemy, ponieważ mój obiekt ma obiekt Location, więc nie wiem, jak sobie z tym poradzić w metodzie writeToParcel – adit
To jest przykład. MainActivity
wysyła listę osób do OtherActivity
przez Intent
.
class Person implements Serializable {
int id;
String name;
Person(int i, String s) {
id = i;
name = s;
}
}
public class TestAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person(1, "Tom"));
list.add(new Person(5, "John"));
Intent intent = new Intent(this, OtherActitity.class);
intent.putExtra("list", list);
startActivity(intent);
OtherActivity.java
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class OtherActitity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
Intent i = getIntent();
ArrayList<Person> list = (ArrayList<Person>) i
.getSerializableExtra("list");
Toast.makeText(this, list.get(1).name, Toast.LENGTH_LONG).show();
}
}
Lepszym pomysłem jest wdrożenie Parcelable interfejs dla obiektu, którego ArrayList chcesz umieścić w intencji .Dla przykładu:
public class Person realizuje Parcelable {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int describeContents() {
return this.hashCode();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
}
}
A następnie kod aplikacji można powiedzieć:
bundle.putParcelableArrayList ("personList", personList);
Tak brzmi pierwsza odpowiedź. –
Jeszcze jeden sposób - można szeregować listę obiektów w jakiś ciąg znaków (niech to będzie JSON), a następnie pobrać wartość ciąg powrót do listy
// here we use GSON to serialize mMyObjectList and pass it throught intent to second Activity
String listSerializedToJson = new Gson().toJson(mMyObjectList);
intent.putExtra("LIST_OF_OBJECTS", listSerializedToJson);
startActivity(intent);
// in second Activity we get intent and retrieve the string value (listSerializedToJson) back to list
String listSerializedToJson = getIntent().getExtras().getString("LIST_OF_OBJECTS");
mMyObjectList = new Gson().fromJson(objectsInJson, MyObject[].class); // in this example we have array but you can easy convert it to list - new ArrayList<MyObject>(Arrays.asList(mMyObjectList));
- 1. lista obiektów Collections.map
- 2. 2 wymiarowa lista tablica
- 3. vue.js $ oglądać Tablica obiektów
- 4. Swift tablica zamiana obiektów
- 5. tablica filtrów javascript obiektów
- 6. tablica localStorage obiektów obsługujących
- 7. Tablica obiektów z numpy
- 8. Tablica obiektów PHP
- 9. javascript tablica obiektów
- 10. Binding Lista obiektów MVC obiektów
- 11. Właściwości obiektu Lista obiektów
- 12. Lista obiektów w httpcontext.current.cache
- 13. Powracająca tablica obiektów z PDO
- 14. Lista maszyn wirtualnych platformy Azure za pośrednictwem interfejsu REST API
- 15. jQuery Znaczniki (autouzupełnianie) lista Pobieranie JSON za pośrednictwem AJAX
- 16. VB.NET trzeba właściwość klasy się lista tablica
- 17. Hashtable vs tablica obiektów niestandardowych dotyczących iteracji
- 18. Lista obiektów i atrybutów JMX?
- 19. Lista obiektów o unikalnym atrybucie
- 20. Debugowanie intencji
- 21. Restkit 0,20 zagnieżdżona tablica obiektów mapowania numerze
- 22. lista zawiera Scala vs tablica zawiera
- 23. Dostęp lista pyton w javascript jako tablica
- 24. PHP: tablica obiektów - serialize vs json_encode - alternatywy?
- 25. nawrócony Tablica obiektów do połączonego łańcucha
- 26. Tablica 2D obiektów w języku Python
- 27. POST Tablica obiektów do API REST
- 28. Zapisz Tablica obiektów z właściwościami do PLIST
- 29. Tablica obserwacyjna AngularJS obiektów do zmiany danych
- 30. Tablica obiektów javascript nie została zmieniona.
można wziąć klasy statyczne –