Подтвердить что ты не робот

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);
}

я получаю a ClassCastException

context - это основное действие, которое расширяет Activity, переданное с помощью getApplicationContext();

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)
4b9b3361

Ответ 1

Вы передаете приложение Context не Activity Context с

getApplicationContext();

Где бы вы ни проходили, пройдите this или ActivityName.this вместо этого.

Поскольку вы пытаетесь передать Context, вы передаете (приложение не активность, как вы думали), на Activity с

(Activity)

вы получаете это исключение, потому что вы не можете использовать приложение для Activity, поскольку приложение не является подклассом Activity.