簡體   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