FirebaseOffline 无法转换为 android.app.Activity
FirebaseOffline cannot be cast to android.app.Activity
我正在使用 YouTube API 在我的应用程序中播放视频。视频 ID 从 Firebase 数据库加载。
这是数据库结构:
这是 Adapter ViewHolder 的代码:
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
protected RelativeLayout relativeLayoutOverYouTubeThumbnailView;
TextView channel_name;
YouTubeThumbnailView youTubeThumbnailView;
public ImageView playButton;
public ViewHolder(@NonNull View itemView) {
super(itemView);
channel_name = itemView.findViewById(R.id.channel_name);
playButton = itemView.findViewById(R.id.btnYoutube_player);
playButton.setOnClickListener(this);
relativeLayoutOverYouTubeThumbnailView = itemView.findViewById(R.id.relativeLayout_over_youtube_thumbnail);
youTubeThumbnailView = itemView.findViewById(R.id.youtube_thumbnail);
}
@Override
public void onClick(View view) {
String id = list.get(getAdapterPosition()).getVid_ID();
// ERROR IN BELOW LINE
Intent intent = YouTubeStandalonePlayer.createVideoIntent((Activity) context, YoutubeConfig.getApiKey(), id, 100,
true,
false);
context.startActivity(intent);
这是我的清单:
<application
android:name=".FirebaseOffline"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".VideoActivity"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name=".Video.VideoActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当我点击播放视频时,出现这个错误:
java.lang.ClassCastException: com.devapps.FirebaseOffline cannot be cast to android.app.Activity
.
您需要将 activity 传递给您的 RecyclerView Adapter
,然后将其更改为 activity。示例:在您的 activity(您调用 recyclerview 的地方)
adapter = new ExampleRecyclerAdapter(CurrentActivity.this, data);
在您的 RecyclerView 适配器中:
Activity activity;
ExampleRecyclerAdapter(CurrentActivity activity, Data data) {
this.activity = activity;
}
然后在您的代码中将其替换为 activity
context.startActivity(YouTubeStandalonePlayer.createVideoIntent(activity, DEVELOPER_KEY, VIDEO_ID));
}
我正在使用 YouTube API 在我的应用程序中播放视频。视频 ID 从 Firebase 数据库加载。
这是数据库结构:
这是 Adapter ViewHolder 的代码:
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
protected RelativeLayout relativeLayoutOverYouTubeThumbnailView;
TextView channel_name;
YouTubeThumbnailView youTubeThumbnailView;
public ImageView playButton;
public ViewHolder(@NonNull View itemView) {
super(itemView);
channel_name = itemView.findViewById(R.id.channel_name);
playButton = itemView.findViewById(R.id.btnYoutube_player);
playButton.setOnClickListener(this);
relativeLayoutOverYouTubeThumbnailView = itemView.findViewById(R.id.relativeLayout_over_youtube_thumbnail);
youTubeThumbnailView = itemView.findViewById(R.id.youtube_thumbnail);
}
@Override
public void onClick(View view) {
String id = list.get(getAdapterPosition()).getVid_ID();
// ERROR IN BELOW LINE
Intent intent = YouTubeStandalonePlayer.createVideoIntent((Activity) context, YoutubeConfig.getApiKey(), id, 100,
true,
false);
context.startActivity(intent);
这是我的清单:
<application
android:name=".FirebaseOffline"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".VideoActivity"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name=".Video.VideoActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当我点击播放视频时,出现这个错误:
java.lang.ClassCastException: com.devapps.FirebaseOffline cannot be cast to android.app.Activity
.
您需要将 activity 传递给您的 RecyclerView Adapter
,然后将其更改为 activity。示例:在您的 activity(您调用 recyclerview 的地方)
adapter = new ExampleRecyclerAdapter(CurrentActivity.this, data);
在您的 RecyclerView 适配器中:
Activity activity;
ExampleRecyclerAdapter(CurrentActivity activity, Data data) {
this.activity = activity;
}
然后在您的代码中将其替换为 activity
context.startActivity(YouTubeStandalonePlayer.createVideoIntent(activity, DEVELOPER_KEY, VIDEO_ID));
}