2015-04-20 2 views
0

В fragmentHome я уже реализован интерфейс TaskCompleted, который имеет только один метод «onTaskComplete», которые принимают в результирующую строку из AsyncTask, а после реализации в fragmentHome, поместите строку как текст в TextView.Кастинг в AsyncTask

это код в классе AsyncTask, которые возвращают меня роковое исключение на кастинг:

....private Context mContext; 


private TaskCompleted mCallback; 

public MyAsyncTaskClass(Context context){ 
    this.mContext = context; 
    this.mCallback = (TaskCompleted) context; 

}.... 

и onPostExecute я это сделать:

mCallback.onTaskComplete(results); 

Я называю asynkTask этим путем с OnClick в fragmentHome:

new MyAsyncTaskClass(myContext).execute(URI.create("http://urlthatcontainsmydata")); 

где myContext является:

private FragmentHome myContext; 
........public void onAttach(Activity activity) { 
    myContext = (FragmentHome) activity; 
    super.onAttach(activity); 
}...... 

Спасибо за помощь, если вам нужна дополнительная информация, просто спросите.

Отредактировано: StackTrace

04-20 15:12:41.449 26365-26365/com.mypackage E/AndroidRuntime﹕ FATAL EXCEPTION: main 
java.lang.ClassCastException: com.mypackage.MainActivity cannot be cast to com.mypackage.TaskCompleted 
     at com.mypackage.MyAsyncTaskClass.<init>(MyWellWS.java:32) 
     at com.mypackage.FragmentHome.onClick(HomeFragment.java:129) 
     at android.view.View.performClick(View.java:4211) 
     at android.view.View$PerformClick.run(View.java:17362) 
     at android.os.Handler.handleCallback(Handler.java:725) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:5227) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 
     at dalvik.system.NativeStart.main(Native Method) 
+0

Пожалуйста, разместите stacktrace. – Emmanuel

+0

Отредактировано с помощью stacktrace – TimeParadox

+0

ошибка означает, что 'MainActivity' не выполняет' TaskCompleted' – Blackbelt

ответ

2

кажется, что ваш Activity не реализует интерфейс TaskCompleted.

+0

Я реализую интерфейс TaskCompleted во фрагменте. это неправильно? это потому, что я использую фрагмент для изменения текста в своем собственном текстовом представлении ... – TimeParadox

+0

Вы пытаетесь использовать 'Activity' для интерфейса, а не' Fragment' – Emmanuel

+0

Итак, я использую неправильный «контекст» в качестве myContext , это правильно? как я мог бы использовать контекст фрагмента как param, а не для активности? – TimeParadox