【问题标题】:How to get attribute and image by parsing XML如何通过解析 XML 获取属性和图像
【发布时间】:2016-01-26 03:49:48
【问题描述】:

我正在使用 Android Studio 创建一个应用。我有这样的 XML 数据:

我希望我的第一个活动显示员工姓名列表。当我单击任何名称时,我希望我的第二个活动显示基于我单击的名称的图像列表。我该怎么做?

【问题讨论】:

  • 使用DOM解析xml文件,解析后使用RecyclerView列出数据。

标签: android xml


【解决方案1】:

Android 的XmlPullParser 在这方面会很有用。

有两个关键方法:next() 和 nextToken()。 next() 提供对高级解析事件的访问,而 nextToken() 允许访问较低级别的令牌。

可以通过调用 >getEventType() 方法来确定解析器的当前事件状态。最初,解析器处于 START_DOCUMENT 状态。

方法 next() 将解析器推进到下一个事件。 >from next 返回的 int 值确定当前解析器状态,并且与 >从以下对 getEventType () 的调用返回的值相同。

这里是上面链接中的一个例子:

public static void main (String args[])
     throws XmlPullParserException, IOException
 {
     XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
     factory.setNamespaceAware(true);
     XmlPullParser xpp = factory.newPullParser();

     xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) );
     int eventType = xpp.getEventType();
     while (eventType != XmlPullParser.END_DOCUMENT) {
      if(eventType == XmlPullParser.START_DOCUMENT) {
          System.out.println("Start document");
      } else if(eventType == XmlPullParser.START_TAG) {
          System.out.println("Start tag "+xpp.getName());
      } else if(eventType == XmlPullParser.END_TAG) {
          System.out.println("End tag "+xpp.getName());
      } else if(eventType == XmlPullParser.TEXT) {
          System.out.println("Text "+xpp.getText());
      }
      eventType = xpp.next();
     }
     System.out.println("End document");
 }

上面的问题有点宽泛,但我会尝试提供一些关于如何做到这一点的线索:

您应该遍历您的数据,创建一个员工列表POJOs,并在您的ListView's 适配器中使用它。您还可以为每个项目设置一个on click listener,然后使用an imageview 显示图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-29
    • 2011-12-05
    • 2013-09-29
    • 2013-05-30
    • 2011-12-13
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多