まず、SOのフラグメントに関連する多くの質問を読み終えたとしましょう。しかし、私とまったく同じ状況を見つけることはできないようです。
PageAdapterを使用しているmyActivityがあり、各ページはフラグメントです。ネットワーク接続などに関する更新を受信するサービスもあります。このサービスは、myActivityで受信者をトリガーします。myActivityはFragmentPage1を更新する必要がありますが、pageAdapterを使用しており、実行時にフラグメントを作成しているため、「findFragmentbyId」などはできません。データを渡す必要はありません。FragmentPage1クラス内で関数をトリガーするだけです。以下のコードスニペットを参照してください。
public class myActivity extends FragmentActivity implements ViewPager.OnPageChangeListener {
FragmentManager fm = getSupportFragmentManager();
mPagerAdapter = new PagerAdapter(fm);
mPager.setAdapter(mPagerAdapter);
mPager.setOnPageChangeListener(this);
// add tabs. Use ActionBar for 3.0 and above, otherwise use TabWidget
final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.addTab(bar.newTab()
.setText(R.string.fragment_page_1)
.setTabListener(new ActionBarTabListener(mPager)));
bar.addTab(bar.newTab()
.setText(R.string.fragment_page_2)
.setTabListener(new ActionBarTabListener(mPager)));
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive (Context context, Intent intent){
if(intent.getAction().equals(InterfaceManager.BROADCAST_UPDATE_CONNECTION_STATS)) {
updateFragmentPage2();
} else if (intent.getAction().equals(InterfaceManager.BROADCAST_UPDATE_RULES)) {
UpdateFragmentPage1();
}
}
};
}
public class FragmentPage2 extends Fragment implements OnCheckedChangeListener, OnClickListener {
public void UpdateFragmentPage2() {
//update list view
}
}