2017-03-22 38 views
0

我有選項卡式活動,我想在第三個選項卡上有YouTube視頻。Youtube播放器內選項卡式活動導致此錯誤

,這裏是我的java:

public class FragmentTutorial extends YouTubePlayerFragment { 

    YouTubePlayerView youTubePlayerView; 
    YouTubePlayer.OnInitializedListener onInitializedListener; 

    public FragmentTutorial() { 
     // Required empty public constructor 
    } 

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

     youTubePlayerView = (YouTubePlayerView) youTubePlayerView.findViewById(R.id.tutorial_youtube_player); 

     onInitializedListener = new YouTubePlayer.OnInitializedListener() { 
      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
       youTubePlayer.loadVideo("3LiubyYpEUk"); 
      } 

      @Override 
      public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 

      } 
     }; 

     youTubePlayerView.initialize(PlayerConfig.API_KEY, onInitializedListener); 

     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_tutorial, container, false); 
    } 

} 

,這裏是我的XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.FragmentTutorial"> 

    <com.google.android.youtube.player.YouTubePlayerView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tutorial_youtube_player" /> 

</FrameLayout> 

,這裏是我的MainActivity:

class FragmentAdapter extends FragmentPagerAdapter { 

     public FragmentAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      switch (position){ 
       case 0: 
        return new FragmentHome(); 
       case 1: 
        return new FragmentCatalog(); 
       case 2: 
        return new FragmentTutorial(); 
      } 
      return null; 
     } 

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


     @Override 
     public CharSequence getPageTitle(int position) { 
      switch (position){ 
       // 
       //Your tab titles 
       // 
       case 0: return "Home"; 
       case 1: return "Catalog"; 
       case 2: return "Tutorial"; 
       default: return null; 
      } 
     } 
    } 

,當我試圖運行此代碼,我得到這個以下錯誤:

Error:(80, 28) error: incompatible types: FragmentTutorial cannot be converted to Fragment 

我在這裏錯過了什麼?謝謝...

回答

2

也許這是錯誤的片段類引起的,YouTubePlayerFragment延伸android.app.FragmentFragmentPagerAdapter需要android.support.v4.app.Fragment,這不能被轉換

編輯:

嘗試使用android.support.v13.app.FragmentPagerAdapter代替android.support.v4.app.FragmentPagerAdapter(其他片段應該延伸android.app.Fragment

+0

任何想法如何使youtube播放器內的標籤片段?因爲大多數教程建議使用'擴展Youtube ***'而不是'擴展片段',因爲我需要。 –

+0

我有'import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter;'我應該把它們全部換成'v13'嗎? –

+2

'FragmentPagerAdapter'應該來自'v13'庫 –

相關問題