1

我需要创建一个支持无线的 Android 应用程序。我的想法是创建一个票务预订系统,允许用户通过 Spinner 选择票务类型。微调器将填充来自 MySQL 数据库的信息,这意味着应用程序使用某种无线连接。除此之外,我还希望在我的应用程序中显示与所选票证类型相关的费用。数据库本身目前包含以下 3 条记录:

Adult - 24.99
Senior - 19.99
Child - 14.99

所以我需要找到一种方法来使用上述数据填充我的微调器,允许用户选择成人、高级或儿童。然后,如果可能,请使用文本视图根据用户选择的票证显示相关费用。我做了一些研究,看起来我必须使用 PHP 来连接和检索我需要的数据,尽管我完全不知道我将如何去做。如果有人能指出我正确的方向,我们将不胜感激,或者如果有人需要更多信息,请告诉我。

4

1 回答 1

0

据我了解,您的问题是询问如何在 PHP/MySQL 服务器和 Android 客户端之间传输数据。我对这个问题的回答是JSON

JSON 提供了一种简单、轻量级和人类可读的方式来传输原始数据。您的数据的一种 JSON 表示形式可能如下所示:

{"Adult":24.99,"Senior":19.99,"Child":14.99}

在 PHP 服务器上,您可以使用json_encode()函数将几乎任何变量转换为 JSON 字符串:

<?php
// TODO create this array from the database
$prices = array('Adult' => 24.99, 'Senior' => 19.99, 'Child' => 14.99);

echo json_encode($prices);
?>

在 Android 客户端上,您可以使用Jackson JSON 处理器库对 JSON 进行解码。数据绑定模式使得将 JSON 字符串转换为 Java 对象变得异常容易。(这里我将数据转换为泛型类型Map<String, Float>,但您也可以创建一个自定义类型Price.class并使用它而不是new TypeReference ...部分。)

// TODO download this string from the server
String json = "{\"Adult\":24.99,\"Senior\":19.99,\"Child\":14.99}";

ObjectMapper mapper = new ObjectMapper();
Map<String, Float> prices = mapper.readValue(json, new TypeReference<Map<String, Float>>() {});
于 2013-03-10T20:04:12.290 回答