Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FragmentStatePagerAdapter非法状态例外:<;MyFragment>;当前不在FragmentManager中_Android_Android Fragments_Android Viewpager - Fatal编程技术网

Android FragmentStatePagerAdapter非法状态例外:<;MyFragment>;当前不在FragmentManager中

Android FragmentStatePagerAdapter非法状态例外:<;MyFragment>;当前不在FragmentManager中,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,下面是我的课堂片段: 公共类ViewPagerAdapter扩展了FragmentStatePagerAdapter{ 私人最终碎片管理器支持碎片管理器; 私人名单; 公共视图页面编辑器(碎片管理器支持碎片管理器,列表){ 超级(支持碎片管理器); this.supportFragmentManager=supportFragmentManager; this.list=列表; } @凌驾 公共片段getItem(int位置){ 返回列表。获取(位置); } @凌驾 public int get

下面是我的课堂片段:

公共类ViewPagerAdapter扩展了FragmentStatePagerAdapter{
私人最终碎片管理器支持碎片管理器;
私人名单;
公共视图页面编辑器(碎片管理器支持碎片管理器,列表){
超级(支持碎片管理器);
this.supportFragmentManager=supportFragmentManager;
this.list=列表;
}
@凌驾
公共片段getItem(int位置){
返回列表。获取(位置);
}
@凌驾
public int getCount(){
if(list==null){
返回0;
}
返回list.size();
}
}
我正在另一个片段中将此适配器添加到viewPager:

private updateVideoViewPager(列表){
ViewPagerAdapter videosAdapter=新ViewPagerAdapter(((超级活动)活动)。getSupportFragmentManager(),列表);
VideosAger.setAdapter(videosAdapter);
videosPager.removeOnPageChangeListener(onVideoPageChangeListener);
videosPager.addOnPageChangeListener(onVideoPageChangeListener);
videosPager.setCurrentItem(0);
}
这里我应该传递
getSupportFragmentManager()
,因为我使用的是Support4库

列表中包含HomeVideoFragment的。 以下是HomeVideoFragment的来源:

@SuppressLint(“有效碎片”)
公共类HomeVideosFragment扩展了片段{
私人关系;亲子关系;
私有布尔值isVisibleToUser=false;
私有图像视图playbauseiv;
私有图像视图定向;
私人关系覆盖子父母;
私人关系;视频控制;
/**
*保持视频是准备(-1)还是播放(1)或暂停(2)的状态
*或已停止(0)
*/
私人int播放状态=9;
私人ProgressBar ProgressBar;
私有文本视图状态电视;
私有字符串videoUrl;
私有布尔地址;
公共家庭视频片段(){
}
公共HomeVideosFragment(字符串videoUrl,布尔值isVodUrl){
this.videoUrl=videoUrl;
this.isVodUrl=isVodUrl;
}
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
if(parentView==null){
parentView=(RelativeLayout)充气器。充气(R.layout.home\u视频片段,容器,false);
progressBar=(progressBar)parentView.findviewbyd(R.id.home\u video\u fragment\u progress\u bar);
statusTv=(TextView)parentView.findViewById(R.id.home\u video\u fragment\u status\u tv);
parentView.findViewById(R.id.home\u video\u overlay\u parent\u rl).setOnTouchListener(onTouchListener);
overlaySubParentRl=(RelativeLayout)parentView.findViewById(R.id.home\u video\u overlay\u sub\u parent\u rl);
orientationIv=(ImageView)parentView.findviewbyd(R.id.home\u video\u fragment\u orientation\u iv);
orientationIv.setOnClickListener(切换OrientationLickListener);
videoControlsRl=(RelativeLayout)parentView.findViewById(R.id.home\u videos\u control\u rl);
playbauseiv=(ImageView)parentView.findviewbyd(R.id.home\u video\u fragment\u control\u play\u iv);
playPauseIv.setOnClickListener(playPauseClickListener);
getInstance(getActivity(),null).setPlayPauseView(playPauseIv);
loadVideo();
hideOverlay();
}否则{
if(parentView.getParent()!=null){
((ViewGroup)parentView.getParent()).removeView(parentView);
}
}
返回父视图;
}
私有void loadVideo(){
如果(!isVisibleToUser){
返回;
}
OverlySubparentRL.setVisibility(View.VISIBLE);
playingState=-1;
videoControlsRl.setVisibility(视图已消失);
/*字符串cameraUrl=camera.getPlayUrl();
如果(!cameraUrl.contains(“http”)){
cameraUrl=“android.resource://”+getActivity().getPackageName()+“/raw/”+cameraUrl.toLowerCase().replace(“,”);
}*/
progressBar.setVisibility(View.VISIBLE);
HomeVideoManager.getInstance(getActivity(),videoListener).initiateVideoView(videoUrl,isVodUrl,parentView);
statusTv.setText(“”);
}
@凌驾
public void onStart(){
super.onStart();
onStartSession(getActivity());
}
@凌驾
公共空间{
super.ondestory();
onEndSession(getActivity());
}
私有最终HomeVideoManager.VideoListener VideoListener=新的HomeVideoManager.VideoListener(){
@凌驾
已准备好的公共文件(){
progressBar.setVisibility(View.GONE);
videoControlsRl.setVisibility(视图可见);
playingState=1;
}
@凌驾
公开无效{
progressBar.setVisibility(View.GONE);
videoControlsRl.setVisibility(视图已消失);
statusTv.setText(“无法播放视频”);
播放状态=0;
}
};
private final View.OnClickListener PlayPauseClicklListener=新建视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(播放状态==1){
getInstance(getActivity(),videoListener).pause();
playbauseiv.setImageResource(R.drawable.play);
播放状态=2;
}否则如果(播放状态==2){
HomeVideoManager.getInstance(getActivity(),videoListener.resume();
playbauseiv.setImageResource(R.drawable.pause);
playingState=1;
}
}
};
private final View.OnClickListener ToggleOrientionOnlicklListener=新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
if(((HomeActivity)getActivity()).currentOrientation==Configuration.ORIENTATION\u纵向){
getActivity().setRequestedOrientation(Build.VERSION.SDK_INT<9?
ActivityInfo.SCREEN\u方向\u横向:
活动信息。屏幕(方向、传感器和景观);
}else if(((HomeActivity)getActivity()).currentOrientation==Configuration.ORIENTATION\u横向){
getActivity().setRequestedOrientation(Build.VERSIO
ava.lang.IllegalStateException: Fragment HomeVideosFragment{54ad23f} is not currently in the FragmentManager
      03-16 08:26:33.173 E/AndroidRuntime(22923):         
  at                                                                          android.support.v4.app.FragmentManagerImpl.saveFragmentInstanceState(FragmentM   anager.java:687)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.support.v4.app.FragmentStatePagerAdapter.destroyItem(FragmentStatePagerAdapter.java:136)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:418)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at com.selfhelp.fragments.NewsFragment.updateHomeVideoOnUI(NewsFragment.java:456)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at com.selfhelp.fragments.NewsFragment.access$300(NewsFragment.java:62)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at com.selfhelp.fragments.NewsFragment$HomeVideosAsyncTask.onPostExecute(NewsFragment.java:445)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at com.selfhelp.fragments.NewsFragment$HomeVideosAsyncTask.onPostExecute(NewsFragment.java:368)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.os.AsyncTask.finish(AsyncTask.java:651)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.os.AsyncTask.-wrap1(AsyncTask.java)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.os.Looper.loop(Looper.java:148)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at android.app.ActivityThread.main(ActivityThread.java:5417)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at java.lang.reflect.Method.invoke(Native Method)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
03-16 08:26:33.173 E/AndroidRuntime(22923):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)