Я пытаюсь реализовать API YouTube для моего приложения. В результате после нажатия кнопки появляется всплывающий фрагмент диалога, в котором пользователь может увидеть описание топи c и посмотреть соответствующее видео. (DialogFragment - это то, что я планирую использовать, поэтому, если это возможно, я не хочу его менять)
По какой-то причине я не могу инициализировать фрагмент YouTube из XML в dialogFragment. Если бы он был внутри AppCombatActivity (проверено!), Он бы работал. Но я не могу инициализировать его внутри диалога ...
DialogFragment:
public class InfoFragment extends AppCompatDialogFragment implements YouTubePlayer.OnInitializedListener {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(Objects.requireNonNull(getActivity()));
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.info_api_layout, null);
builder.setView(view);
//ERROR BELOW (Underlined with red)
YouTubePlayerFragment youTubePlayerFragment =
(YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtube_fragment);
youTubePlayerFragment.initialize("api key", this);
return builder.create();
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
//Implement later
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Toast.makeText(getActivity(), "ERROR", Toast.LENGTH_SHORT).show();
}
}
XML:
<fragment
android:id="@+id/youtube_fragment"
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:layout_width="0dp"
android:layout_height="300dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />