如何使用MySQL数据库中的数据填充Android Spinner?

时间:2013-03-10 19:32:16

标签: php android mysql

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

Adult - 24.99
Senior - 19.99
Child - 14.99

所以我需要找到一种用上述数据填充我的微调器的方法,允许用户选择Adult,Senior或Child。然后,如果可能,使用textview显示相关的成本,具体取决于用户选择的票证。我已经做了一些研究,看起来我将不得不使用PHP来连接和检索我需要的数据,虽然我完全不知道如何去做这件事。如果有人能指出我正确的方向,我们将不胜感激,或者如果有人需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分: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 Processor库解码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>>() {});