
我想从FragmentActivity中更改片段中的ImageVIEw(在代码中创建). (XML中没有片段和标记).
从FragmentActivity扩展的MainActivity和从GooglePlayServicesClIEnt.ConnectionCallbacks实现的:
...FragmentAdapter mAdapter;VIEwPager mPager;...public voID onCreate(Bundle savedInstanceState){ ... FragmentManager fm = getSupportFragmentManager(); mAdapter = new FragmentAdapter(fm); mPager.setAdapter(mAdapter); ...}@OverrIDepublic voID onConnected(Bundle connectionHint){//*** I want to change a ImageVIEw on Fragment1 here}从FragmentPagerAdapter扩展的FragmentAdapter:
...private FragmentManager mFragmentManager;public FragmentAdapter(FragmentManager fm){ super(fm);}@OverrIDepublic 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;//}根据this主题更改片段中的元素,来自fragmentActivity:
从Fragment扩展的Fragment1:
private ImageVIEw imgThisImageShouldChange = null;public VIEw onCreateVIEw(...){ imgThisImageShouldChange = (ImageVIEw)v.findVIEwByID(R.ID.Targetimage); ...}public voID changeImageVIEw(int resourceID){ imgThisImageShouldChange.setimageResource(resouirceID);}本主题中的注释行说:
//Do not create new object each time you set text. Use the same
fragment object which you use for vIEw pager.
那么如何从MainActivity访问fragmentObject,调用changeImageVIEw方法呢?
如果我应该通过标签找到片段,根据this主题,我应该在哪里设置标签以及如何查找?
解决方法:
所以显然可以根据您的具体需求进行调整,但这是我用于我的应用程序的内容.
Fragment frag = getSupportFragmentManager().findFragmentByTag("androID:switcher:" + R.ID.pager + ":" + mPager.getCurrentItem()); if(frag!=null&&mPager.getCurrentItem()==0) { ((Fragment1) frag).changeImageVIEw(1); } 总结 以上是内存溢出为你收集整理的android – 从fragmentActivity刷新片段UI全部内容,希望文章能够帮你解决android – 从fragmentActivity刷新片段UI所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)