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);

然后我尝试从谷歌地图解析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

你可以这样做;pathName直接在for循环中使用...

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

Thanks my fren. im still not really well on using Object[]. then i used this code for solving my problem

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");
        }

Thanks for userSeven7s, flameaddict and khan for trying to help me. nice to know u all :)

于 2012-05-19T12:55:20.597 回答
0

Ii 是由 引起的NullPointerException,这意味着一些需要参数并且您已将空值传递给它。根据您的代码,它可能在desk.setText("");. 尝试在其中插入一个空格或一些值并运行。

于 2012-05-19T12:32:23.797 回答
0

你永远不会初始化你的数组...... objPlace[] 是一个空数组。

您需要执行以下操作:

objPlace[] = new Object[arraysizenumber]
于 2012-05-19T12:32:58.960 回答