Estoy intentando cambiar un LinearLayout
de otra clase, pero cuando ejecuto este código:
public class IRC extends PircBot { ArrayList channels; ArrayList userCount; ArrayList topics; LinearLayout channelLayout; Context context; public IRC(Context ctx) { this.setName("xxxx"); channels = new ArrayList(); userCount = new ArrayList(); topics = new ArrayList(); context = ctx; channelLayout = (LinearLayout) ((Activity) context).findViewById(R.id.channels); }
obtengo una ClassCastException
contexto es la actividad Principal que extiende la Activity
pasada con un getApplicationContext ();
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.(IRC.java:34) at gdxxx.MainActivity$1.run(MainActivity.java:49) at java.lang.Thread.run(Thread.java:856)
Está pasando el Context
la aplicación no el Activity Context
la Activity Context
con
getApplicationContext();
Donde sea que esté pasando, pase this
o ActivityName.this
lugar.
Como intentas transmitir el Context
, pasas (la aplicación no es una actividad como creías) a una Activity
con
(Activity)
obtienes esta excepción porque no puedes enviar la Aplicación a la Activity
porque la Aplicación no es una subclase de Activity
.