Android 正在重新创建片段

Android 正在重新创建片段,android,android-fragments,Android,Android Fragments,我使用fragment实现viewpager,viewpager也是一个片段,我实现了一个后退按钮,点击它,片段返回到上一个片段,按下后退按钮,上一个片段再次加载并获得响应。我怎样才能防止这种情况。我在下面添加了我的代码 照片片段:- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

我使用fragment实现viewpager,viewpager也是一个片段,我实现了一个后退按钮,点击它,片段返回到上一个片段,按下后退按钮,上一个片段再次加载并获得响应。我怎样才能防止这种情况。我在下面添加了我的代码

照片片段:-

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
    {           

    View view = inflater.inflate(R.layout.layout_photo, container, false);
    ButterKnife.inject(this, view);
    sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
    editor = sharedPref.edit();
    if (sharedPref.contains("isViewPagerStarted")) {
    isViewPagerStarted = sharedPref.getBoolean("isViewPagerStarted",false);
    }

    Log.e("pagerstart", "" + isViewPagerStarted);
    if (isViewPagerStarted) {
        backButton.setVisibility(View.VISIBLE);
        Animation RightSwipe = AnimationUtils.loadAnimation(getActivity(),
                R.anim.slide_out_left);
        backButton.startAnimation(RightSwipe);

        backButton.setVisibility(View.INVISIBLE);
    } else {
        backButton.setVisibility(View.INVISIBLE);
    }

    editor.clear();
    editor.commit();

    // sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
    //

    options = new DisplayImageOptions.Builder()
            .showImageForEmptyUri(R.drawable.plc_gallery).cacheOnDisk(true)
            .build();

    return view;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);

    mContext = getActivity();
    FontHelper.setFontFace(galleryHeader, FontType.FONT5);

    getGalleryInfo();
    onClickGridView();

}

private void onClickGridView() {
    gridView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            // String backStateName = fragment.getClass().getName();

            callViewPagerStarted();

            ViewPagerFragment viewPagerFragment = new ViewPagerFragment();
            Bundle bun = new Bundle();
            bun.putInt("position", position);
            bun.putStringArray("fullImage", imageUrls);
            // bun.putStringArray("desc", description);
            viewPagerFragment.setArguments(bun);
            transaction = getActivity().getSupportFragmentManager()
                    .beginTransaction();
            transaction.addToBackStack(null);
            transaction.replace(R.id.frameLayoutFragment,
                    viewPagerFragment, "viewFrag");

            transaction.commit();

            /*
             * // Send intent to SingleViewActivity Intent intent = new
             * Intent(getActivity(),ViewPagerActivity.class); // Pass image
             * index Bundle bundle=new Bundle();
             * bundle.putInt("position",position);
             * bundle.putStringArray("imageArray",imageUrls);
             * bundle.putStringArray("description",description);
             * intent.putExtras(bundle); startActivity(intent);
             */
        }

    });

}

public void callViewPagerStarted() {

    editor.putBoolean("isViewPagerStarted", true);
    editor.commit();

}

@Override
public void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    /* getGalleryInfo(); */
}

private void getGalleryInfo() {
    GetMesaGallery getTempleInfo = new GetMesaGallery();
    // getTempleInfo.setAppID("8eb24199-6838-43ac-b9ca-40031ab37e65");
    ProgresBar.start(mContext);

    ServiceManager.instance().enqueue(getTempleInfo, new ServiceListener() {

        @Override
        public void onComplete(Response arg0) {

            ProgresBar.stop();
            GetMesaGallerysResponse response = (GetMesaGallerysResponse) arg0;
            if (response.isValid()) {
                response.getImageDto();
                final ArrayList<ImageDto> galleryImageList = response
                        .getImageDto();
                thumbnailUrls = new String[galleryImageList.size()];
                // description = new String[galleryImageList.size()];
                imageUrls = new String[galleryImageList.size()];
                for (int i = 0; i < galleryImageList.size(); i++) {
                    try {
                        thumbnailUrls[i] = galleryImageList.get(i)
                                .getthumbnailURL();

                        /*
                         * description[i] = galleryImageList.get(i)
                         * .getdescription();
                         */
                        imageUrls[i] = galleryImageList.get(i).getimageURL();
                        loadGridView();
                    } catch (Exception e) {

                        e.printStackTrace();
                    }
                }

            } else {

            }

        }
    });

}

private void loadGridView() {

    try {

        GridViewAdapter adapter = new GridViewAdapter(getActivity(),
                thumbnailUrls);

        // Set the adapter to the gridview
        gridView.setAdapter(adapter);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    // Add variable to outState here
    super.onSaveInstanceState(outState);
}
public View onCreateView(布局、充气机、视图组容器、,
Bundle savedInstanceState)
{           
视图=充气机。充气(R.layout.layout_照片,容器,假);
注入(这个,视图);
sharedPref=getActivity().getPreferences(Context.MODE\u PRIVATE);
editor=sharedPref.edit();
if(SharedRef.contains(“isViewPagerStarted”)){
isViewPagerStarted=sharedPref.getBoolean(“isViewPagerStarted”,false);
}
Log.e(“pagerstart”,“IsViewPagerStart”);
如果(isViewPagerStarted){
设置可见性(View.VISIBLE);
Animation RightSwipe=AnimationUtils.loadAnimation(getActivity(),
R.anim.滑出(左);
backButton.startAnimation(右击);
backButton.setVisibility(视图不可见);
}否则{
backButton.setVisibility(视图不可见);
}
编辑器.clear();
commit();
//sharedPref=getActivity().getPreferences(Context.MODE\u PRIVATE);
//
选项=新建DisplayImageOptions.Builder()
.showmageforemptyuri(R.drawable.plc_gallery).cacheOnDisk(true)
.build();
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onActivityCreated(savedInstanceState);
mContext=getActivity();
setFontFace(galleryHeader,FontType.FONT5);
getGalleryInfo();
onClickGridView();
}
私有void onClickGridView(){
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
//字符串backStateName=fragment.getClass().getName();
callViewPagerStarted();
ViewPagerFragment ViewPagerFragment=新的ViewPagerFragment();
Bundle bun=新Bundle();
bun.putInt(“位置”,位置);
bun.putStringArray(“fullImage”,imageURL);
//bun.putStringArray(“desc”,描述);
viewPagerFragment.setArguments(bun);
事务=getActivity().getSupportFragmentManager()
.beginTransaction();
transaction.addToBackStack(空);
事务.replace(R.id.frameLayoutFragment,
viewPagerFragment,“viewFrag”);
commit();
/*
*//将意向发送到SingleViewActivity意向=新建
*意图(getActivity(),viewPageActivity.class);//传递图像
*索引捆绑包=新捆绑包();
*bundle.putInt(“位置”,位置);
*bundle.putStringArray(“imageArray”,imageUrls);
*bundle.putStringArray(“说明”,说明);
*意向。putExtras(bundle);startActivity(意向);
*/
}
});
}
public void callViewPagerStarted(){
putBoolean(“isViewPagerStarted”,true);
commit();
}
@凌驾
恢复时公开作废(){
//TODO自动生成的方法存根
super.onResume();
/*getGalleryInfo()*/
}
私有void getGalleryInfo(){
GetMesaGallery getTempleInfo=新建GetMesaGallery();
//getTempleInfo.setAppID(“8eb24199-6838-43ac-b9ca-40031ab37e65”);
ProgresBar.start(mContext);
ServiceManager.instance().enqueue(getTempleInfo,新ServiceListener()){
@凌驾
未完成的公共void(响应arg0){
ProgresBar.stop();
GetMesaGallerysResponse响应=(GetMesaGallerysResponse)arg0;
if(response.isValid()){
response.getImageDto();
最终ArrayList galleryImageList=响应
.getImageDto();
thumbnailUrls=新字符串[galleryImageList.size()];
//description=新字符串[galleryImageList.size()];
imageUrls=新字符串[galleryImageList.size()];
对于(int i=0;i
ViewPager片段:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_viewpager, container,
                false);
        ButterKnife.inject(this, view);

    backButton.setVisibility(View.VISIBLE);

    Animation RightSwipe = AnimationUtils.loadAnimation(getActivity(),
            R.anim.slide_in_right);
    backButton.startAnimation(RightSwipe);

    Log.e("insdie", "viewpager");

    return view;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);

    Bundle arguments = getArguments();
    position = arguments.getInt("position");
    Log.e("position", "" + position);
    fullImageUris = arguments.getStringArray("fullImage");
    txtDesc = arguments.getStringArray("desc");

    FontHelper.setFontFace(description, FontType.FONT6);
    description.setPaintFlags(description.getPaintFlags()
            | Paint.UNDERLINE_TEXT_FLAG);

    /*
     * List<Fragment> imageFragments = getFragments();
     */
    pageAdapter = new MyPagerAdapter(getActivity()
            .getSupportFragmentManager(), fullImageUris);

    mPager.setAdapter(pageAdapter);

    mIndicator.setViewPager_Text(mPager,description,txtDesc);
    mPager.setCurrentItem(position);
}

/*
 * @Override public void onResume() { // TODO Auto-generated method stub
 * super.onResume(); pageAdapter = new MyPagerAdapter(getActivity()
 * .getSupportFragmentManager(),fullImageUri);
 * mPager.setCurrentItem(position); mPager.setAdapter(pageAdapter);
 * mIndicator.setViewPager_Text(mPager, description, txtDesc); }
 */
@OnClick(R.id.left_arrow)
public void tapLeftArrow() {
    mPager.setCurrentItem(getItem(-1), true);
}

private int getItem(int i) {
    return mPager.getCurrentItem() + i;
}

@OnClick(R.id.right_arrow)
public void tapRightArrow() {
    mPager.setCurrentItem(getItem(+1), true);

}

@OnClick(R.id.imgBackBtn)
public void moveToPreviousFragment() {

    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        Log.i("MainActivity", "popping backstack");
        fm.popBackStack();

    } else {
        Log.i("MainActivity", "nothing on backstack, calling super");

    }
    // getActivity().onBackPressed();

}
public View onCreateView(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.layout_)视图寻呼机,容器,
假);
注入(这个,视图);
设置可见性(View.VISIBLE);
Animation RightSwipe=AnimationUtils.loadAnimation(getActivity(),
R.anim.滑动(右);
backButton.startAnimation(右击);
Log.e(“insdie”、“viewpager”);
返回视图;
}
@凌驾
公共空间
public static PhotoFragment instance() {
        if (photoFragment == null) {
            photoFragment = new PhotoFragment();
        }
        return photoFragment;
    }