繁体   English   中英

在Fragment中调用notifyDataSetChanged()

[英]Call notifyDataSetChanged() within Fragment

我在MainActivity.java使用ViewPager,有五个片段。

现在我有一个问题。

运行notifyDataSetChanged()可以像这样正常工作:

viewpager.getAdapter().notifyDataSetChanged();

但是,如何从一个片段运行notifyDataSetChanged()

我不知道。

我尝试过的

使ViewPager静态,然后运行

 MainActivity.this.viewpager.getAdapter().notifyDataSetChanged() 

不起作用。

将方法添加到您的MainActivity

public void dataChanged() {
  viewpager.getAdapter().notifyDataSetChanged();
}

从您的片段中调用

((MainActivity) getActivity()).dataChanged();

您可以通过多种方法执行此操作:

  1. 最简单的方法-在MainActivity.java中声明一个公共方法,如下所示:

    public void onDataSetChanged(){ if(viewPager != null) { viewPager.getAdapter().notifyDataSetChanged() } }

然后从这样的片段中调用它:

((MainActivity) getActivity()). onDataSetChanged();
  1. 使用界面:您可以创建自己的界面,如下所示:

public interface OnDataSetChangeListener { void onDataSetChanged(); }

在MainActivity.java中声明并定义其实例,然后将其设置为片段的实例。 然后从片段中调用它为:

onDataSetChangeListener.onDataSetChanged();
  1. 使用EventBuses。

还有很多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM