Android Studio:如何移除PierfrancescoSoffritti库的YouTubePlayerListener
如何移除YouTubePlayerView中的YouTubePlayerListener
你当前的问题在于使用了匿名内部类创建AbstractYouTubePlayerListener,这种情况下无法直接获取监听器实例的引用,而removeYouTubePlayerListener()方法需要传入之前添加的同一个监听器实例才能生效。
解决方法是把监听器提取为类的成员变量,保存实例引用,后续就能用这个引用来移除监听器:
- 在你的Activity/Fragment中声明成员变量:
private AbstractYouTubePlayerListener myPlayerListener;
- 初始化监听器并添加到YouTubePlayerView:
myPlayerListener = new AbstractYouTubePlayerListener() { @Override public void onReady(@NonNull YouTubePlayer youTubePlayer) { youTubePlayer.loadVideo(videoID, 0); } }; youTubePlayerView.addYouTubePlayerListener(myPlayerListener);
- 在Button1的点击事件中执行移除操作:
button1.setOnClickListener(v -> { youTubePlayerView.removeYouTubePlayerListener(myPlayerListener); });
简单来说,只要持有了添加时的那个监听器实例,直接把它传给removeYouTubePlayerListener()就能完成移除操作,匿名类因为没有实例引用,所以无法直接用于移除。
内容的提问来源于stack exchange,提问作者BeginnersGuide
相关产品推荐
相关产品推荐

