2013-05-22 3 views
0

Итак, у меня возникла проблема использования сети в потоке пользовательского интерфейса и теперь с использованием AsyncTask. Я использую Фрагменты и имею проблему.
Android - Использование диспетчера подключений в фрагменте

При вводе этой строки:

ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

я должен добавить getActivity(), потому что его в fragmetn, то ошибка уходит, но затем я получаю ошибку на этой линии:

new DownloadWebpageTask().execute(stringUrl); 

Ошибка: «Нет доступного экземпляра типа MainActivity. Необходимо определить распределение с помощью экземпляра include MainActivity (например, xnew A(), где x является экземпляром MainActivity)».

Любые идеи о том, как исправить это?

+0

Вы уверены, что это это код, который получает ошибку? –

+0

Да, это не журнал ошибок, он помещает красную строку под ним и дает мне это сообщение об ошибке. –

+0

Возможный дубликат [Java - нет экземпляра экземпляра типа Foo доступен] (http://stackoverflow.com/questions/9560600/java-no-enclosing-instance-of-type-foo-is-accessible) – fabian

ответ

1

Я предполагаю, что ваш DownloadWebpageTask является нестатическим вложенным классом MainActivity.

Вы можете сделать его статическим, изменив его следующим образом:

public static class DownloadWebpageTask extends AsyncTask<..> { 
... 
} 

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

mainactInstance.new DownloadWebpageTask(); 
+0

Я верю Ты прав. +1 –

Смежные вопросы