Bir olaydan diğerine bir ArrayList nesnesi MyItem'i iletmeye çalışıyorum. Anladığım kadarıyla MyItem sınıfında Parcable'ı kullanmam gerekiyor. Yani bu i'va bugüne kadar yapılan budur:Android - Parcelable | putParcelableArrayListExtra ("ListItems", listItems);
public class MyItem implements ClusterItem, Parcelable {
private LatLng mPosition=null;
private String aString;
public MyItem(double lat, double lng, String aString) {
mPosition = new LatLng(lat, lng);
this.aString= aString;
}
@Override
public LatLng getPosition() {
return mPosition;
}
public String getString(){
return aString;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
//dest.writeLngLat ?
dest.writeString(postID);
}
public static final Parcelable.Creator<MyItem> CREATOR
= new Parcelable.Creator<MyItem>() {
public MyItem createFromParcel(Parcel in) {
return new MyItem(in);
}
public MyItem[] newArray(int size) {
return new MyItem[size];
}
};
private MyItem(Parcel in) {
//mPosition = in.readLngLat ?
aString = in.readString();
}
}
İlk soru: Nasıl writeToParcel içinde LngLat alanını yazabilirim ve ben yapıcı (içinde Koli) MyItem içinde nasıl decleare ki?
İkinci soru10: Bu kod yeterli olabilir, bu yeterli olacak mı? CluserPosts içinde
ArrayList<MyItem> listItems = new ArrayList<>();
Iterator<MyItem> items = cluster.getItems().iterator();
while (items.hasNext()) {
listItems.add(items.next());
}
Intent intent = new Intent(MapsActivity.this, ClusterPosts.class);
intent.putParcelableArrayListExtra("oO", listItems);
startActivity(intent);
ve sonra:
Intent intent = getIntent();
ArrayList<MyItem> post = intent.getParcelableArrayListExtra("oO");
for(MyItem item : post){
Log.d("elaela", item.getString());
}
'LatLng' doğru bir' Parcelable' nedir? – pskink
LatLng, benim tarafından uygulanmayan google maps api'den "varsayılan" nesnedir. Ama ben aslında parcelable –
olduğunu düşünüyorum, bu yüzden "Parcelable", daha sonra okuyun/doğrudan "Parsel" yaz – pskink