我正在尝试从另一个类更改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
context是扩展通过getApplicationContext()传递的Activity
的Main活动。
LOGCAT
05-08 17:53:55.102 3736-3799/g.d.allinonechat E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-5357
java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity
at g.d.xxx.IRC.<init>(IRC.java:34)
at g.d.xxx.MainActivity$1.run(MainActivity.java:49)
at java.lang.Thread.run(Thread.java:856)
您使用的是传递应用程序Context
而不是[C0
在我的情况下,当我处于从Activity
扩展的活动中时,它没有起作用Activity
,我只是将AppCompatActivity
放在了它的位置。
对我来说,从(Activity) getApplicationContext ()
中删除this
是成功的方法。