这是我迄今为止所做的工作。 我在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);
然后我尝试从谷歌地图解析KML文档,在Node Placemark我把它的值放到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
请帮助我,对不起我的英语&gt; _&lt;
答案 0 :(得分:9)
你可以这样做;直接在for循环中使用pathName
...
desk.setText("");
for (int j = 0; j < pathName.size(); j++){
desk.append("Deskripsi:\n" + pathName.get(j) + "\n");
}
答案 1 :(得分: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");
}
答案 2 :(得分:0)
Ii由NullPointerException
引起,这意味着一些需要参数,并且您已经传递了空值。
根据您的代码,它可能在desk.setText("");
左右。尝试在其中插入一个空格或一些值并运行。
答案 3 :(得分:0)
你永远不会初始化你的数组... objPlace []是一个空数组。
您需要执行以下操作:
objPlace[] = new Object[arraysizenumber]
答案 4 :(得分: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试图帮助我。 很高兴知道你们所有人:)