这是我的代码:
我想要实现的是,我希望将从内部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”
答案 0 :(得分: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");
}