2012-01-23 15 views
1

我有一个基本的Andriod应用程序,它有一个按钮和一个GridView。当按钮被点击时,应用程序调用Web服务并从中检索一个sql-xml字符串(C#,Dataset.GetXML()),这一切都很好。我需要知道如何将GridView控件绑定到这个sql:xml来显示数据。我知道这是一种适配器,但我无法弄清楚。将sql xml绑定到Android中的gridview中

任何帮助,非常感谢!

@lyricsboy: 下面是从Web服务返回的XML的副本(请记住,这是我在.NET中构建的Web服务,因此如果需要对此进行任何更改,他们可以):

<?xml version="1.0" encoding="UTF-8"?> 
<string xmlns="RemoteWebService"> 
<AllContacts> 
    <Table> 
    <ContactID>7</ContactID> 
    <ContactName>Support</ContactName> 
    <EmailAddress>[email protected]</EmailAddress> 
    <CCEmail>[email protected]</CCEmail> 
    <Visible>true</Visible> 
    <Description>If you have concerns you can use this email. </Description> 
</Table> 
<Table> 
    <ContactID>8</ContactID> 
    <ContactName>Training</ContactName> 
    <EmailAddress>[email protected]</EmailAddress> 
    <CCEmail /> 
    <Visible>true</Visible> 
    <Description>This email is designated for Training issues.</Description> 
</Table> 
</AllContacts> 
</string> 

回答

0

首先,您需要将XML解析为可以提供给适配器的东西。如果数据集的大小合理,则可以使用自己设计的模型对象来保存数据。创建它们的ArrayList,并将它们传递给ArrayAdapter或您自己设计的子类(如果需要,也可以将其传递给您自己的自定义适配器)。

基于示例XML,我将创建一个Contact类,该类有可用于存储为每个项目发送的所有数据的字段。然后编写一些代码,使用XmlPullParserdocs)将您的XML转换为Contact实例并将它们放入ArrayList。将该列表传递给ArrayAdapter,然后传递给GridView

+0

WOW ...对于所有这些都是新鲜事物,似乎只是执行一个简单的任务(不怀疑你的方法顺便说一句)。那么对于来自Web服务的任何xml,情况会是这样吗?听起来好像没有办法采取一个XML文件,你可能没有意识到这些内容并将其显示在GridView中,对吗? – Robert

+0

至少没有内置的API。可能会有一些第三方代码可以做到这一点,但这很难以通用的方式实现,而且Android支持各种设备的高性能。 – lyricsboy

+0

那么这是处理来自数据库的数据的首选方式(显示在GridView中)还是有更好的/更喜欢的方法?在我使用的数据集中,其中95%返回<1000条记录。我知道有一种以上的方式来剥皮猫,但只是寻找最常见的方式。 – Robert