从fragmentActivity刷新片段UI

我想从FragmentActivity中改变ImageView中的片段(在代码中创build)。 (XML中没有片段和标签)。

从FragmentActivity扩展并从GooglePlayServicesClient.ConnectionCallbacks实现的MainActivity:

... FragmentAdapter mAdapter; ViewPager mPager; ... public void onCreate(Bundle savedInstanceState){ ... FragmentManager fm = getSupportFragmentManager(); mAdapter = new FragmentAdapter(fm); mPager.setAdapter(mAdapter); ...} @Override public void onConnected(Bundle connectionHint){ //*** I want to change a ImageView on Fragment1 here } 

从FragmentPagerAdapter扩展的FragmentAdapter:

 ... private FragmentManager mFragmentManager; public FragmentAdapter(FragmentManager fm){ super(fm); } @Override public Fragment getItem(int pos){ // String name = makeFragmentName(R.id.mainPager, pos); // Fragment fragmentObject = mFragmentManager.findFragmentByTag(name); Fragment fragmentObject = null; switch(pos){ case 0: fragmentObject = new Fragment1(); break; ... } return fragmentObject; } ... //private static String makeFragmentName(int viewId, iont index){ //return "android:switcher:" + viewId + ":" + index; //} 

根据这个题目来改变片段中的一个元素,从fragmentActivity:

从片段延伸的片段1:

 private ImageView IMGThisImageShouldChange = null; public View onCreateView(...){ IMGThisImageShouldChange = (ImageView)v.findViewById(R.id.TargetImage); ... } public void changeImageView(int resourceId){ IMGThisImageShouldChange.setImageResource(resouirceId); } 

在这个主题的评论线说:

//每次设置文本时都不要创build新的对象。 使用您用于查看传呼机的相同片段对象。

那么如何从MainActivity访问fragmentObject来调用changeImageView方法?

如果我应该通过标签find片段,根据这个话题,我应该在哪里设置标签以及如何find?

所以很明显,针对您的具体需求进行调整,但这是我用于我的应用程序。

  Fragment frag = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":" + mPager.getCurrentItem()); if(frag!=null&&mPager.getCurrentItem()==0) { ((Fragment1) frag).changeImageView(1); }