首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在android应用程序中创建列表

在android应用程序中创建列表
EN

Stack Overflow用户
提问于 2011-03-02 05:01:46
回答 2查看 1.3K关注 0票数 0

我想知道在我的android应用程序中创建列表的好方法。我有所有的信息在我的数据库中,并希望从它加载数据,每次我启动的应用程序,并从它的列表(id和标题)。

最好的方法是什么?

我应该创建一个PHP脚本,以包含所有列表项的JSON编码数组进行响应,还是应该创建一个XML文件,该文件在每次数据库中的数据更改时生成,并在每次启动应用程序时导入到应用程序中?还有没有别的好办法呢?

因为所有的东西都是由android中的XML文件构成的,所以感觉导入XML将是一件好事,不是吗?如何将XML文件从web服务器导入到应用程序中?

// Daniel

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-02 05:31:26

在您的情况下,我会选择JSON而不是XML,所有原因都在下面的帖子中陈述:http://ajaxian.com/archives/json-vs-xml-the-debate

此外,在android中,默认情况下内置了JSON Array,因此您不必进行任何额外的代码传递。

代码语言:javascript
代码运行次数:0
运行
复制
return new JSONArray("my json string goes here..."); 

由于我们讨论的是移动设备,我总是会在php脚本中生成更改,而不是完全同步,因为这将比完全同步小得多。但是,如果这适用于您的应用程序,则需要为您的用户提供执行完全重新同步的选项。我将使用SQLite数据库来存储数据,并且只更新其中的更改。

为了使流更小,你可以用gzip压缩来自php的输出,因为这可以被android设备本机读取。在我的应用程序中,我在传输之前将500kb压缩到~110kb,这在性能上节省了很多。下面是如何读取流的部分示例:

代码语言:javascript
代码运行次数:0
运行
复制
InputStream in = null;
HttpURLConnection httpConn = null; // you will have to write your on code for this bit.

if (httpConn.getContentEncoding() != null) 
{
String contentEncoding = httpConn.getContentEncoding().toString();
if (contentEncoding.contains("gzip")) 
{ 
    in = new GZIPInputStream(httpConn.getInputStream());
}
} 
else 
{ 
    in = httpConn.getInputStream();
}

我希望这一切都有意义,这是一个漫长的一天的编程:)

Stu

票数 0
EN

Stack Overflow用户

发布于 2011-03-02 05:12:59

您可以使用JSON或XML。

您可以使用web服务方法,也可以在应用程序中包含您的数据库。

事实上,我经常选择为我的数据创建一个sqlite3数据库,并将其包含在assets文件夹中,该文件夹可以在启动时复制到应用程序的data文件夹中。

至于将sqlite3数据库从assets/复制到db数据目录,我发现these instructions很有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5160291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档