在Android中将sql xml绑定到gridview
Posted
技术标签:
【中文标题】在Android中将sql xml绑定到gridview【英文标题】:bind sql xml to gridview in Android 【发布时间】:2012-02-17 04:37:17 【问题描述】:我有一个基本的 Andriod 应用程序,上面有一个按钮和一个网格视图。单击按钮时,应用程序调用 Web 服务并从中检索 sql-xml 字符串(C#,Dataset.GetXML()),这一切都很好。我需要知道如何将 GridView 控件绑定到此 sql:xml 以显示数据。我知道这与某种适配器有关,但我无法弄清楚。
非常感谢任何帮助!
@lyricsboy: 这是从 Web 服务返回的 XML 副本(请记住,这是我在 .NET 中构建的 Web 服务,因此如果需要对其进行任何更改,他们可以):
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="RemoteWebService">
<AllContacts>
<Table>
<ContactID>7</ContactID>
<ContactName>Support</ContactName>
<EmailAddress>me@me.com</EmailAddress>
<CCEmail>him@me.com</CCEmail>
<Visible>true</Visible>
<Description>If you have concerns you can use this email. </Description>
</Table>
<Table>
<ContactID>8</ContactID>
<ContactName>Training</ContactName>
<EmailAddress>them@me.com</EmailAddress>
<CCEmail />
<Visible>true</Visible>
<Description>This email is designated for Training issues.</Description>
</Table>
</AllContacts>
</string>
【问题讨论】:
【参考方案1】:首先,您需要将 XML 解析为可以提供给适配器的内容。如果数据集大小合理,您可以使用自己设计的模型对象来保存数据。创建它们的 ArrayList,并将它们传递给 ArrayAdapter
或您自己设计的子类(或您自己的自定义适配器,如果需要)。
基于示例 XML,我将创建一个 Contact
类,其中包含可用于存储您为每个项目发送的所有数据的字段。然后编写一些代码,使用XmlPullParser
(docs) 将您的XML 转换为Contact
实例并将它们放入ArrayList
。将该列表传递给ArrayAdapter
,然后再传递给GridView
。
【讨论】:
哇...对这一切都是新手,执行一项简单的任务似乎很多(顺便说一句,不要怀疑你的方法)。那么来自 Web 服务的任何 xml 都会出现这种情况吗?听起来没有办法获取您可能不知道内容的 XML 文件并将其显示在 GridView 中,对吗? 至少没有内置 API。可能有一些第三方代码可以做到这一点,但很难以通用方式实现,而且在 android 支持的各种设备上也具有高性能。 那么这是处理来自数据库的数据(显示在 GridView 中)的首选方法还是有更好/更首选的方法?在我使用的数据集中,95% 的数据集返回 对于大型数据集,可能更常见的是将数据存储在本地设备上类似的数据库模式中。使用 Web 服务调用和封送代码填充数据库,然后查询本地数据库以填充 UI。如果你愿意,这样你就可以利用整个Cursor
和ContentProvider
生态系统。以上是关于在Android中将sql xml绑定到gridview的主要内容,如果未能解决你的问题,请参考以下文章
在 Sql Server 中将 xml 文档作为存储过程的参数传递是不是安全?