我无法显示图片网址



我想使用 Dom Parser解析一个特定的 xml 文件。我正在我的应用程序中为文章使用 xml 解析器。如何对图像使用 xml 解析器?

new Thread(new Runnable() {
    @Override
    public void run() {
    try {
        URL url = new URL("http://........");
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(url.openStream()));
        doc.getDocumentElement().normalize();
        final NodeList nodeList = doc.getElementsByTagName("Article");
        /** Assign textview array lenght by arraylist size */
        nasional.this.runOnUiThread(new Runnable() {
            public void run() {
                for (int i = 0; i < nodeList.getLength(); i++)
                {
                    Node node = nodeList.item(i);
                    Element fstElmnt = (Element) node;
                    nameList = fstElmnt.getElementsByTagName("Headline");
                    Element nameElement = (Element) nameList.item(0);
                    nameList = nameElement.getChildNodes();
                    datelist = fstElmnt.getElementsByTagName("ArticleDate");
                    Element dateElement = (Element) datelist.item(0);
                    datelist = dateElement.getChildNodes();
                    imglist = fstElmnt.getElementsByTagName("ImageURL");
                    Element imgElement = (Element) imglist.item(0);
                    imglist = imgElement.getChildNodes();
                    View root   = inflater.inflate(R.layout.list_item, null);
                    TextView title = (TextView) root.findViewById(R.id.title);
                    title.setText(((Node) nameList.item(0)).getNodeValue());
                    TextView date = (TextView) root.findViewById(R.id.date);
                    date.setText(((Node) datelist.item(0)).getNodeValue());

                    ImageView image = (ImageView) root.findViewById(R.id.list_image);
                    image(((Node) imglist.item(0)).getNodeValue());
                    list.addView(root);
                }
            }               
        });
    } catch (Exception e) {
        System.out.println("XML Pasing Excpetion = " + e);
    }
    }
}).run();
}

目前尚不清楚您的问题是什么,但我怀疑您的线程在调用 UI 元素时崩溃。只能从 UI 线程修改 UI。有多种方法可以执行此操作,但请记住您希望何时以及如何分析 XML。

如果要解析一次并将结果保留在内存中,应考虑使用:

  • 加载器,通过onLoaderFinished()传递结果
  • 服务,其中结果通过广播接收器中的意图传递

如果您不介意每次轮换设备或重新创建活动时重新分析 XML,则可以考虑使用:

  • 一个 AsyncTask,其中结果通过onPostExecute()传递
  • 一个线程,其中结果通过处理程序传递

最新更新