2011-11-24 4 views
1

Dans une classe Fragment, j'essaie d'appeler une classe AsyncTask où, dans doInBackground(), j'essaie d'extraire Currentlocation et de définir le TextView.Fragment - Utilisation de AsyncTask

Mais quand je suis en train de faire, il montrant ci-dessous d'erreur,

E/AndroidRuntime(645): Caused by: java.lang.ClassCastException:com.example.MainFragmentActivity 

de mon MainFragmentActivity qui étend FragmentActivity, je suis en train d'un adaptateur appelé FragmentPagerAdapter et dans cet adaptateur de override getItem() j'appelle ce fragment comme ci-dessous,

@Override 
public Fragment getItem(int position) { 
    if (position == 0) { 
     Log.i(TAG, "before return in adapter postion 0"); 
     return ViewPageFragment.newInstance(CONTENT[position % CONTENT.length], context); 
    } 
} 

Voici mon code, http://pastebin.com/gykkETJV

Comment puis-je résoudre ce problème?

stacktrace:

E/ViewPageFragment(420): java.lang.ClassCastException: com.example.MainFragmentActivity 
E/ViewPageFragment(420): com.example.ViewPageFragment$LocationTask.doInBackground(ViewPageFragment.java:145) 
E/ViewPageFragment(420): com.example.ViewPageFragment$LocationTask.doInBackground(ViewPageFragment.java:1) 
E/ViewPageFragment(420): android.os.AsyncTask$2.call(AsyncTask.java:185) 
E/ViewPageFragment(420): java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
E/ViewPageFragment(420): java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
E/ViewPageFragment(420): java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
E/ViewPageFragment(420): java.lang.Thread.run(Thread.java:1096) 
+0

Pourriez-vous poster un peu plus de votre stacktrace? – kaspermoerch

+0

Comment puis-je obtenir stacktrace – Jyosna

+0

J'ai édité stacktrace – Jyosna

Répondre

0

Voyant que vous obtenez une ClassCastException et la ligne 145 de votre ViewPageFragment est:

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 10, (LocationListener)context); 

la chose qui provoque l'erreur est probablement que votre context n'étend pas/mettre en œuvre LocationListener.

Depuis que je pense que ViewPageFragment étend Fragment vous pouvez utiliser getActivity() au lieu de context comme le dernier paramètre. N'oubliez pas que si vous le faites, le Activity qui instancie le ViewPageFragment doit étendre/implémenter LocationListener.

Questions connexes