En passant d'une Liste personnalisée des données à l'aide de Bundle
Je suis le développement d'une application simple, qui contient tabview avec le fragment. Je suis coincé à l'endroit, où je dois passer des données à mes nouvellement créé fragment de tabselect.
J'ai une Liste de listes de mes personnalisé des objets de la classe:
List<List<NewsObjectClass>> myList;
C'est là que je me suis coincé:
public static class PlaceholderFragment extends ListFragment{
private static final String ARG_SECTION_NUMBER = "section_number";
public PlaceholderFragment(){
}
public static PlaceholderFragment newInstance(int sectionNumber, List<List<NewsObjectsClass>> data) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
//Here i want to pass my List<List<NewsObjectClass>> to the bundle
fragment.setArguments(args);
return fragment;
}
...
Spécifique, j'ai besoin d'un moyen de passer ma liste de lsits de myCustomObjects le fragment, alors là, je pourrais l'utiliser pour lsitview adaptateur.
Tout syggestions sur la façon de passer ce type de données serait génial.
Merci.
OriginalL'auteur xenuit | 2014-05-03
Vous devez vous connecter pour publier un commentaire.
Faire de votre
NewObjectClass
Parcelable
ouSerializable
et puis créer une nouvelle classe, de manière efficace, contenant votre liste, aussiParcelable
ouSerializable
. Ensuite, utilisezBundle.putSerializable
(ouputParcelable
)Ou, plus simple, de faire
NewObjectClass
Parcelable
ensuite utiliserputParcelableArrayList
si vous pouvez le faire avecArrayList
au lieu de génériqueList
Ou, plus simple, de faire
NewObjectClass
Serializable et l'utilisationputSerializable
passantArrayList<NewObjectClass>
parce queArrayList
estSerializable
Dans le dernier cas, peut-être vous seulement devra ad
implements
Serializable
à votre classe.Par ailleurs, si les données semblent être, envisager de les garder dans un personnalisé
Application
-objet dérivé de la place. Vous étendezApplication
et puis un tel objet existera tout le temps de votre application existent. N'oubliez pas de l'enregistrer dans le manifeste.Ou vous pouvez le faire avec un partage des préférences
Si votre classe est assez simple, vous peut-être aurez seulement besoin d'ajouter implémente Serializable puis passer ArrayList pour Bundle. Jsva prend soin de la sérialisation
utilisation Parcelable au lieu de Serializable, pour plus d'informations, voir ceci
Eh bien, ma classe ne contient que des Chaîne et les objets Bitmap. Et encore une chose - n'est-il pas un problème de l'utilisation de List<List<CustomObj>> ?
Vos données semblent être de grande taille. Envisager de les garder dans une Application personnalisée-objet dérivé de la place. Vous étendre l'Application et puis un tel objet existera tout le temps de votre application existent. N'oubliez pas de l'enregistrer dans le manifeste.
OriginalL'auteur Alexander Kulyakhtin
OriginalL'auteur Alireza Sobhani
utilisation
putSerializable
méthode pour passer votre liste personnalisée.et l'extraire à l'aide de
getSerializable
OriginalL'auteur Konstantin Konopko