gpt4 book ai didi

android - 从 fragmentActivity 刷新 fragment UI

转载 作者:太空狗 更新时间:2023-10-29 16:16:52 27 4
gpt4 key购买 nike

我想从 FragmentActivity 更改 fragment 中的 ImageView(在代码中创建)。 (XML 中没有 fragment 和标记)。

从 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;
//}

根据 this更改 fragment 中元素的主题,来自 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 方法呢?

如果我应该通过标签找到 fragment ,根据 this主题,我应该在哪里设置标签以及如何找到?

最佳答案

显然可以根据您的特定需求进行调整,但这就是我在我的应用程序中使用的。

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

关于android - 从 fragmentActivity 刷新 fragment UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833912/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com