0
내 주요 활동 레이아웃은 ViewPager로 구성됩니다. 이 ViewPager에는 다양한 페이지가 있으며 일련의 XML 레이아웃 파일을 통해 팽창됩니다.ViewPager 내의 VideoView
XML 레이아웃 파일 중 하나에는 VideoView가 있습니다. 이 VideoView를 어떻게 초기화합니까?
이것은 활동의 onCreate 메소드입니다. ViewPagerAdapter에 의해 팽창되지 않았으므로 VideoView를 초기화 할 수 없습니다.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPagerAdapter adapter = new ViewPagerAdapter(this);
ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicator);
pager.setAdapter(adapter);
indicator.setViewPager(pager);
// mVideoView is null.. where should I init this?
VideoView mVideoView = (VideoView) findViewById(R.id.myvideoview);
mVideoView.setVideoPath(path);
mVideoView.setMediaController(new MediaController(this));
mVideoView.start();
}
이것은 ViewPagerAdapter의 instantiateItem 메소드입니다.
public Object instantiateItem(View pager, int position)
{
//Inflate the correct layout
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//layouts[] is an int[] that points to resources such as R.layout.start_page
View inflatedView = layoutInflater.inflate(layouts[position], null);
((ViewPager)pager).addView(inflatedView,0);
// is this the correct way to do this?
if (position == 1) {
VideoView mVideoView = (VideoView) inflatedView.findViewById(R.id.myvideoview);
mVideoView.setVideoPath(path);
mVideoView.start();
}
return inflatedView;
}
여기에 초기화해야한다고 생각하십니까?
동영상보기 mVideoView = (VideoView) pager.findViewById (R.id.myvideoview); –
이 작동하지 않습니다. 나는 레이아웃이 아직 팽창되지 않았기 때문에 VideoView를 찾을 수 없다는 것이 문제라고 생각합니다. – humansg