Android从webservice asynctask nullpointer检索数据

时间:2012-09-28 15:19:15

标签: android web-services android-asynctask

这是我的代码:

http://pastie.org/4856109

我想要实现的是,我希望将从内部AsyncTask检索到的所有数据放在名为nodes的main_activity变量上...

列表节点是我想要放置所有检索到的数据的变量...有关如何存储检索到的数据以供在类中使用的任何建议。

如果我运行此代码,LogCat会给我这个:

  

09-28 23:00:24.978:E / Downloads(1200):java.lang.NullPointerException

     
    

09-28 23:00:25.158:D / gralloc_goldfish(1200):未检测到GPU仿真的仿真器。

         
      

09-28 23:00:25.608:D / JSONClient(1200):“http://10.0.2.2/thesis/displayV.php”

    
  

1 个答案:

答案 0 :(得分:1)

致电时:

readWebpage(null);

这会使异步调用填充您的nodes对象。但是你的主线程会立即继续这一行:

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

由于此时nodes仍为null(因为您的AsyncTask尚未完成),您将获得您遇到的NullPointerException

正如@ n​​jzk2所述,您应该将UI操作移动到onPostExecute()

@Override
protected void onPostExecute(String result) {
    textView.setText((nodes.isEmpty())?"true":"false");
}