PDA

View Full Version : عدم نمایش اطلاعات ارسالی از وب سرویس در fragmentViewPager



merlin007
چهارشنبه 15 مهر 1394, 12:24 عصر
سلام
من یک fragmentViewPager دارم که سه تا fragment داره میخوام که وقتی اکتیوتی اصلی اجرا میشه فرگمنت اطلاعات رو از وب سرویس فراخوانی کنه و در recyclerView نمایش بده .
وقتی اکتیویتی مربوطه اجرا میشه در log وب سرویس اطلاعات دریافت میشه اما در recyclerView نشون داده نمیشه! وقتی swipe میکنم به فرگمنت سوم اطلاعات رو نشون میده یعنی حداقل باید دوتا fragment جابجا بشم دوباره برگردم تا اطلاعات رو نمایش بده!
مشکل از چیه؟!


ActivityMain.java


@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
ViewPager pager = (ViewPager) findViewById(R.id.fragmentPagerMain);


setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(tr ue);


FragmentNavigationDrawer fragNavDrawer = (FragmentNavigationDrawer) getSupportFragmentManager().findFragmentById(R.id. fragment_navigation_drawer);
fragNavDrawer.setUp((DrawerLayout) findViewById(R.id.drawerLayout), toolbar);




MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getSupportFragmentManager() );
pager.setAdapter(adapter);
pager.setCurrentItem(3);
SlidingTabLayout tabs = (SlidingTabLayout) findViewById(R.id.pagerTabLayout);
tabs.setViewPager(pager);


}



FragmentPagerAdapter.java


@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return FragmentList.getInstance(position);
case 1:
return FragmentList.getInstance(position);
case 2:
return FragmentList.getInstance(position);
default:
return FragmentList.getInstance(position);
}
}




FragmentList.java


public class FragmentList extends Fragment {


private ViewGroup view;
private ArrayList<ModelPurchase> data = new ArrayList<>();
private MyRecyclerPurchaseList adapter;
private RecyclerView recyclerView;


public static Fragment getInstance(int catId) {
FragmentList fragment = new FragmentList();


Bundle bundle = new Bundle();
bundle.putInt("catId", catId);
fragment.setArguments(bundle);


return fragment;
}




@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = (ViewGroup) inflater.inflate(R.layout.fragment_list, container, false);


new HttpRequests().new PurchasedList(new HttpRequests.RequestCompeleteListener() {
@Override
public void onCompeletd(ArrayList<ModelPurchase> arrayList) {
data = arrayList;
adapter.notifyDataSetChanged();
}
}).getList();
recyclerView = (RecyclerView) view.findViewById(R.id.listAll);
adapter = new MyRecyclerPurchaseList(getActivity(), data);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));


return view;
}


@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);


}
}



کدهای مربوط به فراخوانی وب سرویس رو در onActivityCreated هم قرار دادم باز به همین صورت هست!