java.lang.ClassCastException:android.app.ContextImpl无法强制转换为android.app.Activity

时间:2017-03-23 12:39:43

标签: android android-fragments crash

我有一个片段类,我希望它像Facebook feed。它从远程SQL DB获取数据,并在运行时创建帖子的布局并在片段中显示它。

有没有好的&简单的方法吗?

我尝试使用从片段调用的BackgroundTaskJobs来实现。 这是调用部分(来自片段内部):

BackgroundTaskJobs backgroundTaskJobs= new BackgroundTaskJobs(getActivity());
backgroundTaskJobs.execute();

这是BackgroundTaskJobs的初始化:

public BackgroundTaskJobs(Context ctx){
   this.ctx = ctx;
   activity = (Activity) ctx;
}

在运行时,这个init崩溃了我的错误:

FATAL EXCEPTION: main
Process: com.example.admin.tabbedproject, PID: 27095
java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity

我该怎么办才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

我找到了一种更简单的方法 - 我传递了View变量并将其替换为Activity初始化。

片段:     BackgroundTaskJobs backgroundTaskJobs= new BackgroundTaskJobs(getActivity()); backgroundTaskJobs.execute();

BackgroundTaskJobs:     public BackgroundTaskJobs(Context ctx, View view){ this.ctx = ctx; this.view= view; }

当我需要这个命令时:     recyclerView = (RecyclerView)activity.findViewById(R.id.recycler_view);

我用了那个:     recyclerView = (RecyclerView)view.findViewById(R.id.recycler_view);