【发布时间】:2016-01-26 03:49:48
【问题描述】:
我正在使用 Android Studio 创建一个应用。我有这样的 XML 数据:
我希望我的第一个活动显示员工姓名列表。当我单击任何名称时,我希望我的第二个活动显示基于我单击的名称的图像列表。我该怎么做?
【问题讨论】:
-
使用DOM解析xml文件,解析后使用RecyclerView列出数据。
我正在使用 Android Studio 创建一个应用。我有这样的 XML 数据:
我希望我的第一个活动显示员工姓名列表。当我单击任何名称时,我希望我的第二个活动显示基于我单击的名称的图像列表。我该怎么做?
【问题讨论】:
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 显示图像。
【讨论】: