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