2013-03-10 155 views
1

我需要創建一個支持無線的Android應用程序。我的想法是創建一個訂票系統,它允許用戶通過微調器選擇一種票類型。微調器將填充來自MySQL數據庫的信息,這將意味着應用程序使用某種無線連接。除此之外,我還希望與選定票證類型相關的成本也顯示在我的應用程序中。該數據庫本身目前由以下3個記錄:如何使用MySQL數據庫中的數據填充Android Spinner?

Adult - 24.99 
Senior - 19.99 
Child - 14.99 

所以我需要找填充我的微調上述數據允許用戶選擇使用成年,老年或兒童的一種方式。然後,如果可能,請使用文本視圖根據用戶選擇的故障單顯示關聯的成本。我做了一些研究,看起來我必須使用PHP來連接和檢索我需要的數據,但我完全不知道如何去做這件事。如果有人能指出我正確的方向,將不勝感激,如果有人需要更多的信息,請讓我知道。

回答

0

我的理解是,你的問題是詢問如何在PHP/MySQL服務器和Android客戶端之間傳輸數據。我對這個問題的回答是JSON

JSON提供了一種簡單,輕量且可讀的方式來傳輸原始數據。您的數據的一個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客戶端:

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

在PHP服務器,你可以使用json_encode()功能幾乎任何變量轉換成JSON字符串,您可以使用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>>() {});