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)
Ответы
Ответ 1
Вы передаете приложение Context
не Activity Context
с
getApplicationContext();
Где бы вы ни проходили, пройдите this
или ActivityName.this
вместо этого.
Поскольку вы пытаетесь передать Context
, вы передаете (приложение не активность, как вы думали), на Activity
с
(Activity)
вы получаете это исключение, потому что вы не можете использовать приложение для Activity
, поскольку приложение не является подклассом Activity
.