Android开发一般问题

时间:2011-09-23 14:49:43

标签: java android

我正在学习如何编写Android应用程序,并且我遇到了与学习语言相同的问题 - 数据类型无法处理!

为什么将数据从一种类型转换为另一种类型如此困难?为什么一切都使用复杂的自定义数据集?我现在想弄清楚的问题就是一个很好的例子:Android Location Services API。当我最终从Android获取位置数据时,这个特殊的位置类型根本不会转换为基本字符串。使用诸如whatever.getLatitude()之类的内置类型也不起作用。同样,为什么API / OS很难提供简单的转换程序?

示例应用程序往往永远不会有帮助,即使我得到一个编译它仍然崩溃。作为一个初学者,我不关心使按钮工作或任何事情,我想在文本框中看到位置数据 - 这将是一个更好的介绍示例应用程序然后你好,世界。

如果有人想提供有关如何处理Android中不同数据类型的指示,这将有所帮助,但老实说,我发布了这个以了解数据转换必须如此令人头疼的原因。

全部谢谢!

3 个答案:

答案 0 :(得分:2)

因为Java是面向对象语言,而Android API是基于OOP原则的。这不是问题 - 它为您提供了好处。例如,您的位置可以提供过多的信息和方法。查看API http://developer.android.com/reference/android/location/Location.html API提供对态度,纬度,经度等的访问。如果要查看所有这些字段的字符串化表示,可以尝试调用toString()方法进行调试或记录。但这对任何其他目的来说都不是好方法。

答案 1 :(得分:0)

每当我使用格式的数据时,我不是我的忠实粉丝,或者包含的信息超出了我的需要,或者信息需要以更适合我的目的“翻译”,我创建了自己的对象模型和翻译层。例如,当我使用web服务时,它会给我需要解析的json或xml数据。我只是创建一个名为model的模块包(或名称空间,如果我在.Net世界中),一个名为translators。模型对象是我的应用程序想要的数据。翻译器类接收数据并返回我的对象​​。这同样适用于对象到对象的转换,而不仅仅是像json和xml这样的原始数据。它只需要很少的时间,当你自己编写助手时(例如,我有一个JSONHelper类,我用Java创建,当我使用Android时),你只需将它从一个项目复制到另一个项目,使你的工作流程更快

答案 2 :(得分:0)

这是基本的Java / OOP,但这也是关于映射数据值的问题。例如,您不能简单地尝试计算两个不是两个数字的数字的值。

“6”(一个字符串)不等于6的数值,除非你告诉班级认识到这一点。

使用bastardized Java / C#

String x = new String ("6");
int xi = 6;

return !x.equals( xi)// would actually fail 

代替

return xi == Integer.parseInt(x);

因此,应用程序和类的每个部分都需要能够理解您作为参数传递的内容。获取该书Tim建议或在Oracle网站(或网站)上查找一些各种Java教程。