[android.app.Application无法转换为android.app.Activity

问题描述 投票:33回答:3

我正在尝试从另一个类更改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)
java android android-activity classcastexception
3个回答
103
投票

您使用的是传递应用程序Context而不是[C0


0
投票

在我的情况下,当我处于从Activity扩展的活动中时,它没有起作用Activity,我只是将AppCompatActivity放在了它的位置。


0
投票

对我来说,从(Activity) getApplicationContext ()中删除this是成功的方法。

© www.soinside.com 2019 - 2024. All rights reserved.