0

これが私のコードです:

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"

4

1 に答える 1

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");
}
于 2012-09-28T16:32:26.403 に答える