2012-01-23 50 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