2017-09-09 4 views
0

Je suis à la recherche d'un moyen de convertir PersistableBundle à Bundle dans android. Y a-t-il un moyen plus simple de le faire? Les deux n'héritent pas de la même classe et je ne peux donc pas les classer.Comment convertir PersistableBundle en Bundle dans android?

Edit:

Je trouve cette façon de copier

public static Bundle getBundleFromPersistableBundle(final PersistableBundle persistableBundle) { 
    Bundle bundle = new Bundle(); 
    if(persistableBundle == null) { 
     return null; 
    } 
    bundle.putAll(persistableBundle); 
    return bundle; 
} 

Répondre

1

Vous pouvez construire un Bundle d'une instance PersistableBundle.

PersistableBundle pb = new PersistableBundle(); 
Bundle b = new Bundle(pb); 

Voir the documentation pour ce constructeur:

Trace un Bundle contenant une copie des correspondances du PersistableBundle donné. Ne fait qu'une copie superficielle du PersistableBundle - voir deepCopy() si vous ne le voulez pas.

+0

J'ai trouvé une façon de le faire: statique Bundle getBundleFromPersistableBundle publique (finale PersistableBundle persistableBundle) { Bundle = new Bundle(); if (persistableBundle == null) { return null; } bundle.putAll (persistableBundle); faisceau de retour; } – user2267399

+0

Cet extrait de code créera et rejettera un paquet inutilement s'il est appelé avec un argument 'null' PersistableBundle. Vérifiez l'argument null * first, * et n'allouez que l'ensemble si vous voulez en retourner un. – ctate

+0

@ctate cet extrait de code définit également le PeristableBundle, donc il est par définition non nul. –