Android - 如何将ArrayList的值设置为TextView

时间:2012-05-19 12:23:23

标签: android android-layout android-xml

我在这里遇到了问题。 我从我的解析器类的结果中得到了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文档,在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 enter image description here

请帮助我,对不起我的英语&gt; _&lt;

5 个答案:

答案 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试图帮助我。 很高兴知道你们所有人:)