[英]Call notifyDataSetChanged() within Fragment
I'm using ViewPager in MainActivity.java
with five Fragments. 我在
MainActivity.java
使用ViewPager,有五个片段。
Now I've got a problem. 现在我有一个问题。
Running notifyDataSetChanged()
works fine like this: 运行
notifyDataSetChanged()
可以像这样正常工作:
viewpager.getAdapter().notifyDataSetChanged();
But how can I run notifyDataSetChanged()
from a Fragment? 但是,如何从一个片段运行
notifyDataSetChanged()
?
I have no idea. 我不知道。
What I've tried 我尝试过的
Making ViewPager static and then run 使ViewPager静态,然后运行
MainActivity.this.viewpager.getAdapter().notifyDataSetChanged()
doesn't work. 不起作用。
Add a method to your MainActivity
like 将方法添加到您的
MainActivity
public void dataChanged() {
viewpager.getAdapter().notifyDataSetChanged();
}
and from your fragments call it with 从您的片段中调用
((MainActivity) getActivity()).dataChanged();
You can do this by various methods: 您可以通过多种方法执行此操作:
The easiest one - declare a public method in MainActivity.java as following: 最简单的方法-在MainActivity.java中声明一个公共方法,如下所示:
public void onDataSetChanged(){ if(viewPager != null) { viewPager.getAdapter().notifyDataSetChanged() } }
And then call it from the fragment like this: 然后从这样的片段中调用它:
((MainActivity) getActivity()). onDataSetChanged();
public interface OnDataSetChangeListener { void onDataSetChanged(); }
Declare and define an instance of it in MainActivity.java and then set it to the instance of your fragment. 在MainActivity.java中声明并定义其实例,然后将其设置为片段的实例。 Then call it from fragment as:
然后从片段中调用它为:
onDataSetChangeListener.onDataSetChanged();
And many more. 还有很多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.