https://github.com/codepath/android_guides/wiki/Sliding-Tabs-with-PagerSlidingTabStrip
在这里,我已经使用滑动选项卡和查看寻呼机两者来获取导航选项卡.一切都正常,但当我移动到另一个选项卡时,列表没有得到更新.即使对象列表变量在调试时也会更新,但视觉列表没有被更新,OnResume()也被调用.
这里我有一些代码片段:
For Tab1 : which in my case is ACTIVE tab
@OverrIDe public voID onResume() { super.onResume(); if(!internetUtil.isConnectedToInternet(getActivity())){ mSwipeRefreshLayout.setEnabled(false); }else{ mSwipeRefreshLayout.setEnabled(true); new GetUsersFromServerTask().execute(); // Here i am making the network calls }}
On Tab2 : Which is Archive tab
@OverrIDe public voID onResume() { super.onResume(); new GetUsersArchivedFromServerTask().execute(); // Network calls }
主要活动:
public class MaterialTab extends FragmentActivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.material_main_sample); VIEwPager vIEwPager = (VIEwPager) findVIEwByID(R.ID.vIEwpager); vIEwPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager())); PagerSlIDingTabStrip tabsstrip = (PagerSlIDingTabStrip) findVIEwByID(R.ID.tabs); tabsstrip.setVIEwPager(vIEwPager); tabsstrip.setonPagechangelistener(new VIEwPager.SimpleOnPagechangelistener() { @OverrIDe public voID onPageSelected(int position) { if(position == 0){ ActiveFragment activeFragment = new ActiveFragment(); final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.detach(activeFragment); ft.attach(activeFragment); ft.commit(); } if(position == 1){ ArchiveFragment archiveFragment = new ArchiveFragment(); final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.detach(archiveFragment); ft.attach(archiveFragment); ft.commit(); } } }); }}
此外,事情是当我正在做SwipeRefresh,然后列表正在更新.我现在完全搞砸了为什么这样的行为.当我滑动标签时,相同的方法被调用,列表没有被更新,但是当我正在进行SwipeRefresh它被更新.
这是活动片段:
public class ActiveFragment extends Fragment {public voID updateFragment(){ new GetUsersArchivedFromServerTask().execute(); } public class GetUsersArchivedFromServerTask extends AsyncTask<User,VoID,String> { @OverrIDe protected String doInBackground(Shipment... parmas) { // Log.d(TAG,String.valueOf(shipmentDbHandler.getAllActiveShipments().size())); _userList1 = userDbHandler.getAllActiveUserByToday(DateTimeUtil.getCurrentTime()); return ""; } @OverrIDe protected voID onPreExecute() { super.onPreExecute(); } @OverrIDe protected voID onPostExecute(String str) { // Set the refresh Listener to false after the List has been loaded with new set of data if (mSwipeRefreshLayout.isRefreshing()) { mSwipeRefreshLayout.setRefreshing(false); } if(_userList1.size() == 0){ VIEwGroup parentOne = (VIEwGroup) vIEwOne.getParent(); if(parentOne != null){ parentOne.removeVIEw(vIEwOne); } } if(_shipmentList1.size() > 0 ){ mShipmentAdapter = new ShipmentAdapter(getActivity(),_userList1,1); shipmentListVIEw1.setAdapter(mShipmentAdapter); setListVIEwHeightBasedOnChildren(shipmentListVIEw1); VIEwGroup parentOne = (VIEwGroup) vIEwOne.getParent(); if(parentOne == null){ mainLayoutOne.addVIEw(vIEwOne); } mShipmentAdapter.notifyDataSetChanged(); } mSwipeRefreshLayout.setClickable(true); } }}解决方法 PLease使用FragmentStatePagerAdapter. 总结
以上是内存溢出为你收集整理的android – 如果在视图寻呼机中选项卡更改时,如何更新列表全部内容,希望文章能够帮你解决android – 如果在视图寻呼机中选项卡更改时,如何更新列表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)