전에 네트워크 작업을 수행 제 onCreate()
방법내가 <code>onCreate()</code> 방법으로 서버에 데이터를로드 <code>arrayList</code> 값을 설정하고 다음 내가 어댑터의 도움으로 <code>listView</code>에 데이터를 표시 할하지만 난 내 프로그램을 실행할 때 <code>onCreateView()</code>을 실행 내 응용 프로그램 조각에서 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()
@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;
}
'onCreate()'를 (를) 더 추가 –
그래서 무엇을할까요? 그것이 작동해야하는 방법입니다. 네트워크 콜은'onCreate()'와'omCreateView()'를 실행하는데 필요한 것보다 훨씬 오래 걸립니다. 일단 네트워크 호출이 완료되면'Adapter'의 내용을 업데이트하는 것이 잘못된 것입니까? –