1

以下に示すように、viewPager アダプターを設定するアクティビティがあります。

public class ViewPagerAdapter extends FragmentPagerAdapter {
    private int pagerLength; 
    private HashMap<Integer, String> mFragmentTags;
    private FragmentManager mFragmentManager;
    String page = "Page";
    public ViewPagerAdapter(FragmentManager fm, int numPage) {
        super(fm);
        mFragmentManager = fm;
        pagerLength = numPage;
        mFragmentTags = new HashMap<Integer, String>();
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Object obj = super.instantiateItem(container, position);
        if(obj instanceof Fragment) {
            Fragment f = (Fragment) obj;
            String tag = f.getTag();
            mFragmentTags.put(position, tag);
        }
        return obj;
    }

    @Override
    public Fragment getItem(int index) {
        ImageFragment imageFragment = (ImageFragment)Fragment.instantiate(ImageActivity.this, imageFragment.class.getName(), null);
        return imageFragment;
    }

    @Override
    public int getCount() {
        return pagerLength;
    }

    public Fragment getFragment(int position) {
        String tag = mFragmentTags.get(position);
        if (tag == null) {
            return (Fragment)instantiateItem(mViewPager, position);
        }
        Fragment fragment = mFragmentManager.findFragmentByTag(tag);
        return fragment;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        mFragmentTags.remove(position);
        super.destroyItem(container, position, object);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // TODO Auto-generated method stub
        return  "TESTING";      //Remove later
    }

}

ImageFragment は、そのレイアウトに imageView を持つ単なるフラグメントではありません

今、アクティビティのフラグメントの imageView に画像を設定したいのですが、どうすればいいですか?

アクティビティで fn update を作成し、imageUrl を update という関数にフラグメントで渡そうとしました。問題は、フラグメントの update() が呼び出されて画像の URL を受け取るが、フラグメントの onCreateView() が呼び出されないことです。

4

0 に答える 0