0

ここで問題があります。パーサークラスの結果からArrayListを取得しました。次に、その値(ArrayListからの値)をTextViewに配置します。

これが私が今までやってきた仕事です。main.xmlでTextViewを作成します

<TextView
        android:id="@+id/deskripsi" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
    />

そしてここで私のonCreateメソッドで、テキストビューを初期化しました

desk = (TextView)findViewById(R.id.deskripsi);

次に、GoogleマップからKMLドキュメントを解析しようとしました。ノードの目印で、その値をArrayList(ここではコード)に配置しました。

ArrayList<String> pathName = new ArrayList<String>();
Object[] objPlace;

//Parser Node Placemark
NodeList nlPlace = doc.getElementsByTagName("Placemark");
        for(int p = 0; p < nlPlace.getLength(); p++){
            Node rootPlace = nlPlace.item(p);
            NodeList itemPlace = rootPlace.getChildNodes();
            for(int y = 0; y < itemPlace.getLength(); y++){
                Node placeStringNode = itemPlace.item(y);
                NodeList place = placeStringNode.getChildNodes();
                //valueName = nameList.item(0).getNodeValue().toString() + "+";
                pathName.add(place.item(0).getNodeValue());
            }
    }

objPlace = pathName.toArray();

desk.setText("");
for (int j = 0; j < objPlace.length; j++){
    desk.append("Deskripsi:\n" + objPlace[j].toString() + "\n");
}

しかし、エミュレータと実際のデバイスで実行しようとすると、エラーが発生します。これが私のLogCatです ここに画像の説明を入力してください

私を助けてください、そして私の英語をごめんなさい> _ <

4

5 に答える 5

10

代わりにこれを行うことができます。pathNameforループで直接使用します...

desk.setText("");
for (int j = 0; j < pathName.size(); j++){
    desk.append("Deskripsi:\n" + pathName.get(j) + "\n");
}
于 2012-05-19T12:30:23.897 に答える
1

あなたはラインを置くことができます

 objPlace[] = new Object[pathName.size()] 

objPlace = pathName.toArray();

それ以外の場合はこの方法で出力を確認します

 desk.setText("");

 for (int j = 0; j < pathName.size(); j++){
     desk.append("Deskripsi:\n" + pathName.get(j) + "\n");
  }
于 2012-05-19T12:47:02.670 に答える
0

Iiはによって引き起こされNullPointerExceptionます。つまり、いくつかのパラメータが必要であり、null値を渡しました。あなたのコードに基づいて、それはおよそであるかもしれませんdesk.setText("");。スペースまたは値を挿入して実行してみてください。

于 2012-05-19T12:32:23.797 に答える
0

配列を初期化することはありません...objPlace[]はnull配列です。

次のようなことをする必要があります。

objPlace[] = new Object[arraysizenumber]
于 2012-05-19T12:32:58.960 に答える
0

私のフレンに感謝します。私はまだObject[]の使用についてはあまりうまくいっていません。それから私は私の問題を解決するためにこのコードを使用しました

String strPlace[] = (String[])pathName.toArray(new String[pathName.size()]);

desk.setText("");
        for (int j = 0; j < strPlace.length; j++){
            desk.append("Deskripsi:\n" + strPlace[j] + "\n");
        }

userSeven7s、flameaddict、khanに助けてくれてありがとう。すべてを知ってうれしいです:)

于 2012-05-19T12:55:20.597 に答える