android – 如果在视图寻呼机中选项卡更改时,如何更新列表

android – 如果在视图寻呼机中选项卡更改时,如何更新列表,第1张

概述在我的应用程序中,我使用视图寻呼机使用导航选项卡.我可以使用以下代码成功绘制标签: https://github.com/codepath/android_guides/wiki/Sliding-Tabs-with-PagerSlidingTabStrip 在这里,我已经使用滑动选项卡和查看寻呼机两者来获取导航选项卡.一切都正常,但当我移动到另一个选项卡时,列表没有得到更新.即使对象列表变量在调试 在我的应用程序中,我使用视图寻呼机使用导航选项卡.我可以使用以下代码成功绘制标签:

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 – 如果在视图寻呼机中选项卡更改时,如何更新列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存