在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。如果你愿意,这样你就可以利用整个CursorContentProvider 生态系统。

以上是关于在Android中将sql xml绑定到gridview的主要内容,如果未能解决你的问题,请参考以下文章

在android中将图像作为BLOB上传到SQL

在 Sql Server 中将 xml 文档作为存储过程的参数传递是不是安全?

如何在 oracle apex 中将 Content-Type=application/xml 用于 pl/sql 块

如何在 PLSQL 中将命名空间添加到 XML 输出

如何在代码中将子菜单项添加到 ActionBar 操作?

在sql server中将xml列值编码为xml