【问题标题】:How to update Listview inside a fragment from "MainActivity" in android?如何从android中的“MainActivity”更新片段内的Listview?
【发布时间】:2019-07-01 15:23:41
【问题描述】:

我不知道在“this”、“R.id.fragment_container”或“currentFragment”中放入什么来使代码正常工作。我有一个带有标签的活动,因此有三个片段。在这个“MainActivity”中,我想更新片段的视图。代码在 MainActivity 中。

这里有两种通过 stackoverflow 刷新片段的变体。

Refresh or force redraw the fragment 中,它说“要刷新 ListView,您需要在 ListView 的适配器上调用 notifyDataSetChanged()。”如何做到这一点?

变体 1

Fragment currentFragment = getActivity().getFragmentManager().findFragmentById(R.id.fragment_container);
if (currentFragment instanceof "NAME OF YOUR FRAGMENT CLASS") {
 FragmentTransaction fragTransaction =   (getActivity()).getFragmentManager().beginTransaction();
 fragTransaction.detach(currentFragment);
 fragTransaction.attach(currentFragment);
 fragTransaction.commit();}
}

变体 2


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            getFragmentManager().beginTransaction().detach(this).commitNow();
            getFragmentManager().beginTransaction().attach(this).commitNow();
        } else {
            getFragmentManager().beginTransaction().detach(this).attach(this).commit();
        }

你能帮我使代码工作吗?在“this”中,需要一个片段。

【问题讨论】:

    标签: android fragment this refresh


    【解决方案1】:

    尝试使用:

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.setReorderingAllowed(false);
    transaction.detach(fragment).attach(fragment).commitAllowingStateLoss();
    

    【讨论】:

    • 我必须在“片段”中插入什么? java-class-filename?
    • 片段片段 = new FragmentName();其中 FragmentName 是您要打开的片段的名称。
    • stackoverflow.com/questions/15262747/… 中显示“要刷新 ListView,您需要在 ListView 的适配器上调用 notifyDataSetChanged()。”你能帮我做这件事吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2017-08-04
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多