【问题标题】:Adding tabs to an Activity and updating on background data change将选项卡添加到活动并更新后台数据更改
【发布时间】:2016-11-15 15:49:46
【问题描述】:

我正在学习 Android/Java,但我不知道如何向 Google 传达我想做的事情。

我需要帮助来了解如何在不同选项卡上显示一条数据。

例如,我有一个 JSON object,其中包含一个“学生”。这个对象包含所有内容,学生身份、成绩、当前课程、午餐钱

从列表视图中选择学生后,我想在不同的选项卡上显示每个子对象。

我可以从JSON Object 获取我的数据,我什至可以在我的MasterViewActivity 中显示和刷新数据。

如何向此活动添加标签?更重要的是,如何在按下刷新时通知和更新标签页?

我看过这个SO questionand this,但我认为它没有帮助。我在谷歌上搜索过教程,但其中很多都是不同的,有些使用多个活动-有些使用片段。我遇到的没有一个指示如何通知/更新数据已更改的各种选项卡。

我希望有人能提供一个适合我想做的好教程的链接。或者可能有一些他们愿意分享的代码 sn-ps 来帮助我入门。

我宁愿在没有外部框架或 github 存储库的用户的情况下执行此操作。

【问题讨论】:

  • 先告诉我刷新按钮是干什么用的?我的观点是,当您单击列表中的学生时,会出现一个新视图(活动或片段)并显示学生的信息。所以问题是刷​​新按钮是干什么用的?
  • @ErfanMowlaei 我需要在记录时重新查询数据库以检查更改。而不是离开视图并从列表中重新选择一个项目。

标签: java android android-activity tabs android-tabs


【解决方案1】:

好的,至于活动或片段之间的选择,这完全取决于您根据您所处的情况做出的决定,但是可能建议使用片段而不是创建新的活动,这应该更容易。对于标签,您需要一个 TabLayout,它的输入方式如下:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    adapter = new ModuleBasedFragmentPagerItemAdapter(getChildFragmentManager(),
            Locale.getDefault(),
            ModuleHelper.getInstance().getFragmentList(getContext(), fragmentType));



    viewPager = (CustomViewPager) view.findViewById(R.id.viewpager);
    viewPager.setAdapter(adapter);

    viewPagerTab = (SmartTabLayout) view.findViewById(R.id.viewPagerTab);
    viewPagerTab.setViewPager(viewPager);

}

所以你需要一个ViewPagerFragmentStatePagerAdapter 来填充它,在我使用SmartTabLayout Libray 的代码中,你也可以使用本机TabLayout。您可以为FragmentStatePagerAdapter 提供不同的参数,以初始化每个选项卡生成的选项卡和片段。

这样你就可以创造你想要的东西。

【讨论】:

    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多