2017-02-13 9 views
1

申し訳ありません私の英語です。 YouTubePlayerを動的に作成する必要があります。私はをYoutubeBaseActivityに拡張できません。ですので、作成する必要があるのはYouTubePlayerSupportFragmentです。それ私のLinearLayoutYouTubePlayerSupportFragmentプログラムを作成する(アンドロイド)

//create video 
     for(int j = 0; j < 5; j++) { 
      final YouTubePlayerSupportFragment ysF = new YouTubePlayerSupportFragment(); 
      ysF.initialize("AIzbSyAT5C-xs5YG1HzG69Fn__PHq9DHXBuKpws", new YouTubePlayer.OnInitializedListener() { 
       @Override 
       public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
        youTubePlayer.cueVideo("IjUlQU6yifk"); 
       } 

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

       } 
      }); 

//this line error, because ViewGroup can not be applied com.google.android.youtube.player.YouTubePlayerSupportFragment 
      container_more_info_item.addView(ysF); 
     } 

そして今、私は立ち往生 - 私はこの

container_more_info_itemのようにそれを行うみてください。

UPD何かを思い付くことができません:

私はFragmentManagerを使用していますが、私はこのメッセージCannot resolve method 'add(int, com.google.android.youtube.player.YouTubePlayerSupportFragment)

//create video 
     for(int j = 0; j < 5; j++) { 
      final YouTubePlayerSupportFragment ysF = new YouTubePlayerSupportFragment(); 
      ysF.initialize("AIzaSyAT5C-xs5YG1HzG69Fn__PHq9DHXBuKpws", new YouTubePlayer.OnInitializedListener() { 
       @Override 
       public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
        youTubePlayer.cueVideo("IjUlQU6yifk"); 
       } 

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

       } 
      }); 

      LinearLayout ll = new LinearLayout(this); 
      ll.setOrientation(LinearLayout.HORIZONTAL); 

      ll.setId(j); 

      FragmentManager fragmentManager = getFragmentManager(); 
      FragmentTransaction fragTransaction = fragmentManager.beginTransaction(); 
//Cannot resolve method 'add(int, com.google.android.youtube.player.YouTubePlayerSupportFragment) 
      fragTransaction.add(ll.getId(), ysF); 
      fragTransaction.commit(); 

      container_more_info_item.addView(ll); 
     } 
+1

:フラグメントを追加するには

https://developer.android.com/guide/components/fragments.html#Transactions –

+0

@KenWolfあなたのコメントのおかげで、私はqestionを更新します。正しいことをしてください。 – g71132

+1

'getFragmentManager()'の代わりに 'getSupportFragmentManager()'を使用してください。 –

答えて

1

YouTubePlayerSupportFragmentはそれがFragmentあるViewではありません持っています。

フラグメントを追加するプロセスは、ビューを追加するプロセスとは少し異なります。あなたは `FragmentManager`を使用する必要がありフラグメントを追加するには

FragmentManager fm = getSupportFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.add(R.id.your_fragment_container, ysF); 
ft.commit(); 

https://developer.android.com/guide/components/fragments.html#Transactions

関連する問題