2012-09-28 5 views
0

Вот мой код:Android извлечение данных из вебсервиса AsyncTask NullPointer

http://pastie.org/4856109

То, что я хочу добиться того, что я хочу, чтобы получить все данные, извлеченные из моего внутреннего AsyncTask быть размещен на моей переменной main_activity named nodes ...

Узлы списка - это переменная, в которой я хочу поместить все извлеченные данные ... любое предложение о том, как я могу хранить полученные данные для использования в классе.

если я запускаю этот код LogCat бы мне это:

09-28 23: 00: 24.978: E/Загрузки (1200): java.lang.NullPointerException

09 -28 23: 00: 25.158: D/gralloc_goldfish (1200): Эмулятор без эмуляции графического процессора.

09-28 23: 00: 25,608: D/JSONClient (1200): "http://10.0.2.2/thesis/displayV.php"

+1

не хватает полной StackTrace ... – njzk2

+1

узлов равна нулю. он не инициализируется к тому времени, когда вы его вызываете. Вы должны использовать его в onPostExecute, для чего он нужен. – njzk2

ответ

1

Когда вы звоните :

readWebpage(null); 

это делает асинхронный вызов для заполнения вашего nodes объекта. Однако ваш основной поток будет немедленно продолжать эту линию:

textView.setText((nodes.isEmpty())?"true":"false"); 

С nodes еще null в этой точке (как ваш AsyncTask еще не завершен), то вы получите NullPointerException, что вы испытываете.

В @ njzk2 штатах, вы должны переместить манипуляции UI в onPostExecute():

@Override 
protected void onPostExecute(String result) { 
    textView.setText((nodes.isEmpty())?"true":"false"); 
} 
Смежные вопросы