android.app.Application不能转换为android.app.Activity

我想改变一个LinearLayout从另一个类,但是当我运行这个代码:

 public class IRC extends PircBot { ArrayList<String> channels; ArrayList<Integer> userCount; ArrayList<String> topics; LinearLayout channelLayout; Context context; public IRC(Context ctx) { this.setName("xxxx"); channels = new ArrayList<String>(); userCount = new ArrayList<Integer>(); topics = new ArrayList<String>(); context = ctx; channelLayout = (LinearLayout) ((Activity) context).findViewById(R.id.channels); } 

我得到一个ClassCastException

上下文是延伸使用getApplicationContext()传递的Activity的主要活动;

logcat的

 05-08 17:53:55.102 3736-3799/gdallinonechat E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-5357 java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity at gdxxx.IRC.<init>(IRC.java:34) at gdxxx.MainActivity$1.run(MainActivity.java:49) at java.lang.Thread.run(Thread.java:856) 

Solutions Collecting From Web of "android.app.Application不能转换为android.app.Activity"

您正在传递应用程序Context而不是Activity Context

 getApplicationContext(); 

无论你传递什么,它都会传递this或者ActivityName.this

由于您正试图将您传递的Context (应用程序不是您想象的Activity )传递给Activity

 (Activity) 

你会得到这个exception,因为你不能将应用程序转换为Activity因为应用程序不是Activity的子类。