2012-01-23 2 views
1

У меня есть базовое приложение Andriod, на котором есть кнопка и сетка. Когда кнопка нажата, приложение вызывает веб-службу и извлекает из нее строку sql-xml (C#, Dataset.GetXML()), которая отлично работает. Мне нужно знать, как связать элемент управления GridView с этим sql: xml для отображения данных. Я знаю, что это связано с типом адаптера, но я не могу понять это.привязать sql xml к gridview в Android

Любая помощь очень ценится!

@lyricsboy: Вот копия XML, которая возвращается из веб-службы (имейте в виду, что это веб-сервис, который я создал в .NET, поэтому, если какие-либо изменения в этом должны быть сделаны, они могут):

<?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, у которого были поля, которые вы могли бы использовать для хранения всех данных, отправляемых для каждого элемента. Затем напишите код, который использует XmlPullParser (docs), чтобы превратить ваш XML в Contact экземпляров и поместить их в ArrayList. Передайте этот список ArrayAdapter, который затем перейдите к GridView.

+0

WOW ... будучи новым для всего этого, кажется, что это просто для выполнения простой задачи (не сомневаясь в вашем методе btw). Так будет ли это иметь место для ЛЮБОГО xml, который поступает из веб-службы? Похоже, что нет способа взять XML-файл, который может не знать о содержимом и отображать его в GridView, правильно? – Robert

+0

По крайней мере, не со встроенными API. Может быть какой-то сторонний код, который может это сделать, но это было бы сложно сделать в общем виде, что также было высокой производительностью в широком диапазоне устройств, поддерживаемых Android. – lyricsboy

+0

Так это предпочтительный способ обработки данных из базы данных (для отображения в GridView) или есть ли лучшие/более предпочтительные подходы? Из наборов данных, с которыми я работаю, 95% из них возвращают <1000 записей. Я знаю, что есть более чем один способ обмануть кошку, но просто искать наиболее распространенный способ. – Robert

Смежные вопросы