Dans mon fragment d'application i suis en train de valeurs pour arrayList
par des données de chargement pour le serveur dans onCreate()
méthode, puis je veux afficher ces données en listView
avec l'aide de l'adaptateur, mais quand je lance mon programme, il exécute onCreateView()
avant de code de réseau qui est en onCreate()
procédéEffectuer des opérations de réseau avant onCreateView
onCreate()
ArrayList<ContactItem> contactsList = new ArrayList<ContactItem>();
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final QBUser qbUser = new QBUser("username", "password");
QBAuth.createSession(qbUser).performAsync(new QBEntityCallback<QBSession>() {
@Override
public void onSuccess(QBSession qbSession, Bundle bundle) {
Toast.makeText(getActivity(), "created", Toast.LENGTH_SHORT).show();
for (int i = 0; i < contactName.size(); i++) {
QBUsers.getUserByLogin(contactNumber.get(i).replaceAll(" ", "")).performAsync(new QBEntityCallback<QBUser>() {
@Override
public void onSuccess(QBUser qbUser, Bundle bundle) {
if (qbUser != null) {
final ContactItem contactItem = new ContactItem(qbUser.getFullName(), qbUser.getLogin(), R.drawable.profile);
contactsList.add(contactItem);
}
}
@Override
public void onError(QBResponseException e) {
}
});
}
}
@Override
public void onError(QBResponseException e) {
Toast.makeText(getActivity(), "failed " + e.toString(), Toast.LENGTH_LONG).show();
}
});
}
onCreateView() Ajouter un fragment ou une méthode de fragment d'appel à un rappel de réponse réseau.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_contacts, container, false);
ListView listView = (ListView) rootView.findViewById(R.id.contacts_listview);
contactItemAdapter = new ContactItemAdapter(getActivity(), contactsList);
listView.setAdapter(contactItemAdapter);
return rootView;
}
ajoutez votre 'onCreate()' aussi –
Alors quoi? C'est comme ça que ça doit marcher. L'appel réseau prend beaucoup plus de temps que votre téléphone a besoin pour exécuter 'onCreate()' et 'omCreateView()'. Quel est le problème avec la mise à jour du contenu de l'adaptateur une fois l'appel réseau terminé? –