2016-04-11 1 views
0

J'ai un spearearray dans ma classe nommé "test".Android SparseArray en classe parcelable

« test » implémente « parcelable », et je veux être en mesure de récupérer mon sparsearray entre deux activités quand je passe un objet de test avec une intention comme ceci:

Intent intent = new Intent(); 
    intent.putExtra("myObjectTest", myObjectTest); 

Je vois qu'il ya la méthode "writeSparseArray", mais cela ne fonctionne pas avec mon sparsearray.

Mon code actuel:

public Test(Parcel in) { 
    this.id = in.readInt(); 
    // how to get the sparsearray ? 
} 

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeInt(this.id); 
    // how can I parse my SparseArray ? 
} 
+1

Quel type d'objets est le stockage SparseArray? –

+0

C'est une classe que j'avais faite, qui implémente les parcelables. – deveLost

Répondre

-1

Vous pouvez utiliser readSparseArray() et writeSparseArray()

Exemple:

public Test(Parcel in) { 
    this.id = in.readInt(); 
    in.readSparseArray(OBJECT_STORED.class.getClassLoader()); 
} 

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeInt(this.id); 
    dest.writeSparseArray(mSparseArray); 
} 

EDIT

a mis le parcelable dans un Bundle et mettre ce paquet dans le i ntenu

Exemple:

Bundle bundle = new Bundle(); 
bundle.putParcelable("myObjectTest", test); 
intent.putExtra("myBundleTest",bundle);  
+0

Nop, j'ai presque essayé et ça ne marche pas comme je l'ai dit. – deveLost

+1

"La méthode writeSparseArray (SparseArray ) dans le type Parcel n'est pas applicable pour les arguments (SparseArray )" – deveLost

+0

Cliquez sur ce lien, Hope it help you: https://gist.github.com/kaushikgopal/9eea148a2188dc58fe37 –